JavaScript 防盜鏈的原理以及破解方法
HTTP Referer是header的一部分, 當(dāng)瀏覽器向web服務(wù)器發(fā)送請(qǐng)求的時(shí)候,一般會(huì)帶上Referer,告訴服務(wù)器我是從哪個(gè)頁(yè)面鏈接過(guò)來(lái)的,服務(wù)器藉此可以獲得一些信息用于處理。通過(guò)該頭域的值,我們可以檢測(cè)到訪問(wèn)目標(biāo)資源的源地址
背景前段日子 在自學(xué)做項(xiàng)目的時(shí)候發(fā)現(xiàn) 明明在項(xiàng)目中引用了線上存在的圖片 但是在自己的項(xiàng)目中卻怎么也顯示出來(lái)
查閱資料后發(fā)現(xiàn)是這些第三方網(wǎng)站設(shè)置了防盜鏈
破解防盜鏈先說(shuō)說(shuō)防盜鏈的原理,http 協(xié)議中,如果從一個(gè)網(wǎng)頁(yè)跳到另一個(gè)網(wǎng)頁(yè),http 頭字段里面會(huì)帶個(gè) Referer。
這里的Referer是由于歷史原因?qū)е铝似磳戝e(cuò)誤 后來(lái)也就一直沿用。
圖片服務(wù)器通過(guò)檢測(cè) Referer 是否來(lái)自規(guī)定域名,來(lái)進(jìn)行防盜鏈。
如果盜用網(wǎng)站是 https 的 protocol,而圖片鏈接是 http 的話,
則從 https 向 http 發(fā)起的請(qǐng)求會(huì)因?yàn)榘踩缘囊?guī)定,而不帶 referer,從而實(shí)現(xiàn)防盜鏈的繞過(guò)。
官方輸出圖片的時(shí)候,判斷了來(lái)源(Referer),就是從哪個(gè)網(wǎng)站訪問(wèn)這個(gè)圖片,
如果是你的網(wǎng)站去加載這個(gè)圖片,那么Referer就是:你的網(wǎng)站地址;
你網(wǎng)站地址,肯定沒(méi)在官方的白名單內(nèi),所以就看不到圖片了。
因此,若不發(fā)送Referer,也就是沒(méi)有來(lái)源。那么官方那邊,就認(rèn)為是從瀏覽器直接訪問(wèn)的,所以就能加載正常的圖片了。
<meta name='referrer' content='never'>
比如在掘金上 查看我的一篇文章中一張圖片的Request Headers 就可以看到Referer
以上就是JavaScript 防盜鏈的原理以及破解方法的詳細(xì)內(nèi)容,更多關(guān)于JavaScript 防盜鏈的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. .NET中l(wèi)ambda表達(dá)式合并問(wèn)題及解決方法2. CSS hack用法案例詳解3. PHP設(shè)計(jì)模式中工廠模式深入詳解4. ASP.NET MVC遍歷驗(yàn)證ModelState的錯(cuò)誤信息5. Ajax實(shí)現(xiàn)表格中信息不刷新頁(yè)面進(jìn)行更新數(shù)據(jù)6. asp(vbs)Rs.Open和Conn.Execute的詳解和區(qū)別及&H0001的說(shuō)明7. 解決AJAX返回狀態(tài)200沒(méi)有調(diào)用success的問(wèn)題8. ThinkPHP5實(shí)現(xiàn)JWT Token認(rèn)證的過(guò)程(親測(cè)可用)9. JSP數(shù)據(jù)交互實(shí)現(xiàn)過(guò)程解析10. ASP 信息提示函數(shù)并作返回或者轉(zhuǎn)向
