JavaScript 防盜鏈的原理以及破解方法
HTTP Referer是header的一部分, 當瀏覽器向web服務器發(fā)送請求的時候,一般會帶上Referer,告訴服務器我是從哪個頁面鏈接過來的,服務器藉此可以獲得一些信息用于處理。通過該頭域的值,我們可以檢測到訪問目標資源的源地址
背景
前段日子 在自學做項目的時候發(fā)現(xiàn) 明明在項目中引用了線上存在的圖片 但是在自己的項目中卻怎么也顯示出來
查閱資料后發(fā)現(xiàn)是這些第三方網(wǎng)站設置了防盜鏈
破解防盜鏈
先說說防盜鏈的原理,http 協(xié)議中,如果從一個網(wǎng)頁跳到另一個網(wǎng)頁,http 頭字段里面會帶個 Referer。
這里的Referer是由于歷史原因?qū)е铝似磳戝e誤 后來也就一直沿用。
圖片服務器通過檢測 Referer 是否來自規(guī)定域名,來進行防盜鏈。
如果盜用網(wǎng)站是 https 的 protocol,而圖片鏈接是 http 的話,
則從 https 向 http 發(fā)起的請求會因為安全性的規(guī)定,而不帶 referer,從而實現(xiàn)防盜鏈的繞過。
官方輸出圖片的時候,判斷了來源(Referer),就是從哪個網(wǎng)站訪問這個圖片,
如果是你的網(wǎng)站去加載這個圖片,那么Referer就是:你的網(wǎng)站地址;
你網(wǎng)站地址,肯定沒在官方的白名單內(nèi),所以就看不到圖片了。
因此,若不發(fā)送Referer,也就是沒有來源。那么官方那邊,就認為是從瀏覽器直接訪問的,所以就能加載正常的圖片了。
<meta name="referrer" content="never">
比如在掘金上 查看我的一篇文章中一張圖片的Request Headers 就可以看到Referer
以上就是JavaScript 防盜鏈的原理以及破解方法的詳細內(nèi)容,更多關于JavaScript 防盜鏈的資料請關注腳本之家其它相關文章!
相關文章
js實現(xiàn)完美兼容各大瀏覽器的人民幣大小寫相互轉(zhuǎn)換
在基于網(wǎng)頁的打印輸出或報表中,經(jīng)常會牽扯到金額的大寫,每次都打上去很麻煩,所以想法用一個JavaScript客戶端腳本來實現(xiàn)自動轉(zhuǎn)換,只需在需要顯示大寫金額的時候調(diào)用該JS函數(shù),下面我們就來匯總下吧2015-10-10詳解ES6新增字符串擴張方法includes()、startsWith()、endsWith()
這篇文章主要介紹了詳解ES6新增字符串擴張方法includes()、startsWith()、endsWith(),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-05-05使用mock.js隨機數(shù)據(jù)和使用express輸出json接口的實現(xiàn)方法
這篇文章主要介紹了使用mock.js隨機數(shù)據(jù)和使用express輸出json接口的實現(xiàn)方法,需要的朋友可以參考下2018-01-01js實現(xiàn)ctrl+v粘貼上傳圖片(兼容chrome、firefox、ie11)
這篇文章主要為大家詳細介紹了js實現(xiàn)ctrl+v粘貼上傳圖片,兼容chrome,firefox,ie11,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-03-03js對象實例詳解(JavaScript對象深度剖析,深度理解js對象)
下面小編就為大家?guī)硪黄猨s對象實例詳解(JavaScript對象深度剖析,深度理解js對象)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-09-09