成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

php偽造Referer請(qǐng)求反盜鏈資源

chenatu / 929人閱讀

摘要:反盜鏈分類我們了解了盜鏈對(duì)源站的危害后,自然要通過一些手段來阻止這種行為維護(hù)自己的利益。參考文章百科盜鏈防盜鏈偽造防盜鏈

有些產(chǎn)品為了防止自己的產(chǎn)品被盜鏈訪問,會(huì)采用反盜鏈措施,如封閉型生態(tài)的音樂網(wǎng)站和視頻網(wǎng)站,他們已經(jīng)為了版權(quán)付費(fèi),自然不希望你免費(fèi)使用他們的資源。但因?yàn)楹芏嗳藢iT研究盜鏈,因此我們也需要了解下盜鏈、反盜鏈和逃避反盜鏈的原理。

盜鏈

引用百度百科對(duì)盜鏈的定義:

盜鏈?zhǔn)侵阜?wù)提供商自己不提供服務(wù)的內(nèi)容,通過技術(shù)手段繞過其它有利益的最終用戶界面(如廣告),直接在自己的網(wǎng)站上向最終用戶提供其它服務(wù)提供商的服務(wù)內(nèi)容,騙取最終用戶的瀏覽和點(diǎn)擊率。受益者不提供資源或提供很少的資源,而真正的服務(wù)提供商卻得不到任何的收益。
常規(guī)盜鏈

我們知道,網(wǎng)站提供服務(wù)是向服務(wù)端請(qǐng)求一個(gè)html文件,這個(gè)文件中包含有css/js文件,也包含img/video標(biāo)簽,這些靜態(tài)資源會(huì)在html文件加載時(shí),依次的發(fā)起請(qǐng)求并填充在指定位置上,從而完成整個(gè)頁面的加載。

因此只要拿到這個(gè)圖片的URL并嵌入我們自己的html文件中,就能在我們的網(wǎng)站上訪問,由于資源是不同的HTTP請(qǐng)求獨(dú)立訪問的,因此我們也能過濾源站的html文件。這就是最簡單的盜鏈。

危害:在用戶訪問時(shí),并沒有在訪問被盜鏈網(wǎng)站,但是依然會(huì)占用該網(wǎng)站的帶寬資源,而帶寬是要給運(yùn)營商付費(fèi)的。同時(shí),該網(wǎng)站的廣告、周邊、宣傳等資源并不會(huì)被用戶訪問到。

分布式盜鏈

分布式盜鏈比較復(fù)雜,需要在服務(wù)端部署專門的程序,并不針對(duì)單個(gè)網(wǎng)站或單個(gè)url,而是對(duì)全網(wǎng)的所有有用的資源進(jìn)行盜取,并存儲(chǔ)在自己的數(shù)據(jù)庫中,并在用戶實(shí)際訪問時(shí),完全轉(zhuǎn)換為自己的流量。

危害:自己通過勞動(dòng)、金錢、版權(quán)付費(fèi)得到的資源,被盜鏈網(wǎng)站免費(fèi)使用,如網(wǎng)店攝影圖、期刊、電視劇等。并因此導(dǎo)致自己的會(huì)員、服務(wù)無法實(shí)現(xiàn)盈利。

反盜鏈分類

我們了解了盜鏈對(duì)源站的危害后,自然要通過一些手段來阻止這種行為維護(hù)自己的利益。

加水印

這是最簡單的方法,通過后端程序批量對(duì)圖片等資源加上水印,這樣在盜鏈的同時(shí),也在為自己的網(wǎng)站做宣傳,有時(shí)甚至?xí)鲃?dòng)尋求這種盜鏈。

資源重命名

因?yàn)楸I鏈?zhǔn)峭ㄟ^指定的url,這個(gè)url中一定包含該資源的路徑和名稱,因此通過不定期的更改文件或目錄的名稱,能夠快速避免盜鏈,但也會(huì)導(dǎo)致正在下載的資源被中斷。

限制引用頁

http請(qǐng)求的頭部信息中,有一個(gè)字段:referer,它代表這個(gè)請(qǐng)求是從哪個(gè)頁面發(fā)起的,如果是多帶帶在頁面中打開或者服務(wù)端請(qǐng)求的,則這個(gè)字段為空。因此我們可以通過referer這個(gè)字段的值做限制,如果是自己認(rèn)可的頁面,則返回資源,否則,禁止該請(qǐng)求。但是由于每次都要打開一個(gè)白名單的文件做url匹配,因此會(huì)降低性能。

加密認(rèn)證

在客戶端通過將用戶認(rèn)證的信息和資源的名稱進(jìn)行組合后加密,將加密的字符串作為url的參數(shù)發(fā)起請(qǐng)求,在服務(wù)端進(jìn)行解密并認(rèn)證通過后,才會(huì)返回請(qǐng)求的資源。這個(gè)方式主要用于防范分布式盜鏈。

反盜鏈程序

上面的3種反盜鏈方式,我們常用的是第三種,通過referer屬性來完成反盜鏈,今天也主要分享這一種方法的反盜鏈與防反盜鏈。

后端程序限制

這種限制需要消耗服務(wù)端計(jì)算資源,因此不如Nginx限制常用。

$from = parse_url($_SERVER["HTTP_REFERER"]);
if ($from["host"]!="xxx.com" && $from["host"]!="www.xxx.com") {
    die("你丫在盜鏈");
}
Nginx限制

通過修改nginx配置文件可以做到,修改完成后記得重啟nginx

// 這里指定需要防盜鏈的資源,如gif/jpg等
location ~* .(gif|jpg|png|jpeg)$ {
    // 設(shè)置資源的過期時(shí)間
    expires 30d;
    // 設(shè)置合法的引用頁,也就是防盜鏈的白名單;
    // none blocked保證用戶在新頁面打開時(shí)依然能夠打開,如果不希望用戶能夠保存刪掉這兩項(xiàng)
    valid_referers none blocked *.hugao8.com *.baidu.com *.google.com;
    // 對(duì)于非法的引用頁,可以重寫圖片,也可以直接返回403或404頁面
    if ($invalid_referer) {
        rewrite ^/http://www.it300.com/static/images/404.jpg;
        #return 404;
    }
}
Referer-Policy
Referer 首部包含了當(dāng)前請(qǐng)求頁面的來源頁面的地址,即表示當(dāng)前頁面是通過此來源頁面里的鏈接進(jìn)入的。服務(wù)端一般使用 Referer 首部識(shí)別訪問來源,可能會(huì)以此進(jìn)行統(tǒng)計(jì)分析、日志記錄以及緩存優(yōu)化等。

Referer屬性出現(xiàn)在請(qǐng)求頭中,也在請(qǐng)求頭中被設(shè)置,但是在瀏覽器的安全策略里,該值無法被js所指定:

$.ajax({
        url: "http://www.baidu.com",
        beforeSend(xhr) {
            // 在發(fā)送ajax請(qǐng)求前設(shè)置header頭部
            xhr.setRequestHeader("Referer", "http://translate.google.com/");
            xhr.setRequestHeader("User-Agent", "stagefright/1.2 (Linux;Android 5.0)");
        },
        success(data) {
            console.log(data);
        },
        error(err) {
            console.log(err);
        }
});

然而瀏覽器會(huì)報(bào)錯(cuò):

那么Referer是怎么被自動(dòng)設(shè)置的呢?這個(gè)得看Referer-Policy屬性是怎么定義的:

no-referrer: 整個(gè) Referer 首部會(huì)被移除。訪問來源信息不隨著請(qǐng)求一起發(fā)送。

no-referrer-when-downgrade(默認(rèn)值): 在沒有指定任何策略的情況下用戶代理的默認(rèn)行為。在同等安全級(jí)別的情況下,引用頁面的地址會(huì)被發(fā)送(HTTPS->HTTPS),但是在降級(jí)的情況下不會(huì)被發(fā)送 (HTTPS->HTTP)。

origin: 在任何情況下,僅發(fā)送文件的源作為引用地址。例如 https://example.com/page.html 會(huì)將 https://example.com/ 作為引用地址。

origin-when-cross-origin: 對(duì)于同源的請(qǐng)求,會(huì)發(fā)送完整的URL作為引用地址,但是對(duì)于非同源請(qǐng)求僅發(fā)送文件的源。

same-origin: 對(duì)于同源的請(qǐng)求會(huì)發(fā)送引用地址,但是對(duì)于非同源請(qǐng)求則不發(fā)送引用地址信息。

strict-origin: 在同等安全級(jí)別的情況下,發(fā)送文件的源作為引用地址(HTTPS->HTTPS),但是在降級(jí)的情況下不會(huì)發(fā)送 (HTTPS->HTTP)。

strict-origin-when-cross-origin: 對(duì)于同源的請(qǐng)求,會(huì)發(fā)送完整的URL作為引用地址;在同等安全級(jí)別的情況下,發(fā)送文件的源作為引用地址(HTTPS->HTTPS);在降級(jí)的情況下不發(fā)送此首部 (HTTPS->HTTP)。

unsafe-url: 無論是同源請(qǐng)求還是非同源請(qǐng)求,都發(fā)送完整的 URL(移除參數(shù)信息之后)作為引用地址。

這個(gè)值可以通過三種方式來設(shè)置:



防反盜鏈

前端JS不能在頭部設(shè)置Referer字段,和跨域一樣是因?yàn)闉g覽器的安全策略,那么同樣的在服務(wù)端進(jìn)行請(qǐng)求就不會(huì)有這些限制,我們在服務(wù)端請(qǐng)求時(shí)就可以自由的修改Referer字段。

我們通過簡單的PHP例子來完成這個(gè)功能:

我們第一次請(qǐng)求注釋了偽造來源地址這一行,第二次請(qǐng)求不注釋這一行,這樣可以驗(yàn)證執(zhí)行結(jié)果:

總結(jié)

盜鏈和反盜鏈?zhǔn)且粋€(gè)對(duì)立面,技術(shù)不斷升級(jí),最終的目標(biāo)也是為了開放資源和保護(hù)知識(shí)產(chǎn)權(quán)。在互聯(lián)網(wǎng)生態(tài)里,我們通過反盜鏈保護(hù)我們的利益,也使用防反盜鏈的這種方式來擴(kuò)大我們的內(nèi)容,無論站在哪一方,都需要做到知己知彼。

參考文章

百科-盜鏈:https://baike.baidu.com/item/...

php防盜鏈:https://segmentfault.com/q/10...

Referer偽造:https://zhuanlan.zhihu.com/p/...

nginx防盜鏈:https://www.jianshu.com/p/979...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/30004.html

相關(guān)文章

  • php偽造Referer請(qǐng)求盜鏈資源

    摘要:反盜鏈分類我們了解了盜鏈對(duì)源站的危害后,自然要通過一些手段來阻止這種行為維護(hù)自己的利益。參考文章百科盜鏈防盜鏈偽造防盜鏈 有些產(chǎn)品為了防止自己的產(chǎn)品被盜鏈訪問,會(huì)采用反盜鏈措施,如封閉型生態(tài)的音樂網(wǎng)站和視頻網(wǎng)站,他們已經(jīng)為了版權(quán)付費(fèi),自然不希望你免費(fèi)使用他們的資源。但因?yàn)楹芏嗳藢iT研究盜鏈,因此我們也需要了解下盜鏈、反盜鏈和逃避反盜鏈的原理。 盜鏈 引用百度百科對(duì)盜鏈的定義: 盜鏈?zhǔn)侵?..

    Drinkey 評(píng)論0 收藏0
  • PHP面試之二:高并發(fā)與大數(shù)據(jù)

    摘要:三態(tài)分別是就緒運(yùn)行阻塞進(jìn)程的五態(tài)模型在三態(tài)的基礎(chǔ)上發(fā)展而來新建態(tài)運(yùn)行態(tài)終止態(tài)就緒態(tài)等待態(tài)線程稱之為輕量級(jí)的進(jìn)程,程序執(zhí)行流的最小單元。一個(gè)進(jìn)程下有多個(gè)線程來完成不同的工作稱之為多線程。 web資源防盜鏈 盜鏈?zhǔn)鞘裁矗?為什么要防? 在自己頁面上顯示一些不是自己服務(wù)器的資源(圖片、音頻、視頻、css、js等)由于別人盜鏈你的資源會(huì)加重你的服務(wù)器負(fù)擔(dān),所以我們需要防止可能會(huì)影響統(tǒng)計(jì) 防盜鏈...

    Ashin 評(píng)論0 收藏0
  • 20170813-CSRF 跨站請(qǐng)求偽造

    摘要:是的縮寫,翻譯過來就是跨站請(qǐng)求偽造。要抵御,關(guān)鍵在于在請(qǐng)求中放入黑客無法偽造的信息。通過這個(gè)類,可以一次性給所有該類請(qǐng)求加上這個(gè)頭屬性,并把值放入其中。參考對(duì)跨站請(qǐng)求偽造的理解淺談攻擊方式跨站腳本攻擊與跨站請(qǐng)求偽造攻擊的學(xué)習(xí)總結(jié)。 CSRF CSRF是Cross Site Request Forgery的縮寫,翻譯過來就是跨站請(qǐng)求偽造。 跨站:顧名思義,就是從一個(gè)網(wǎng)站到另一個(gè)網(wǎng)站。 ...

    missonce 評(píng)論0 收藏0
  • 一篇文章解讀阿里云視頻點(diǎn)播內(nèi)容安全機(jī)制

    摘要:阿里云視頻點(diǎn)播提供了完善的內(nèi)容安全保護(hù)機(jī)制,可以滿足不同業(yè)務(wù)場景的安全需求。通用性標(biāo)準(zhǔn)加密阿里云視頻加密標(biāo)準(zhǔn)加密可適配所有播放場景阿里云視頻加密僅支持阿里云播放器。 摘要: 如何保障視頻內(nèi)容的安全,不被盜鏈、非法下載和傳播,是困擾眾多企業(yè)已久的問題,特別是獨(dú)播劇、在線教育、財(cái)經(jīng)金融、行業(yè)培訓(xùn)等在線版權(quán)視頻領(lǐng)域尤為迫切,處理不好會(huì)造成極為嚴(yán)重的經(jīng)濟(jì)損失,甚至法律風(fēng)險(xiǎn)。阿里云視頻點(diǎn)播提供了...

    cncoder 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<