




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第詳解php偽造Referer請(qǐng)求反盜鏈資源有些產(chǎn)品為了防止自己的產(chǎn)品被盜鏈訪問(wèn),會(huì)采用反盜鏈措施,如封閉型生態(tài)的音樂(lè)網(wǎng)站和視頻網(wǎng)站,他們已經(jīng)為了版權(quán)付費(fèi),自然不希望你免費(fèi)使用他們的資源。但因?yàn)楹芏嗳藢iT研究盜鏈,因此我們也需要了解下盜鏈、反盜鏈和逃避反盜鏈的原理。
盜鏈
引用百度百科對(duì)盜鏈的定義:
盜鏈?zhǔn)侵阜?wù)提供商自己不提供服務(wù)的內(nèi)容,通過(guò)技術(shù)手段繞過(guò)其它有利益的最終用戶界面(如廣告),直接在自己的網(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è)頁(yè)面的加載。
因此只要拿到這個(gè)圖片的URL并嵌入我們自己的html文件中,就能在我們的網(wǎng)站上訪問(wèn),由于資源是不同的HTTP請(qǐng)求獨(dú)立訪問(wèn)的,因此我們也能過(guò)濾源站的html文件。這就是最簡(jiǎn)單的盜鏈。
危害:在用戶訪問(wèn)時(shí),并沒(méi)有在訪問(wèn)被盜鏈網(wǎng)站,但是依然會(huì)占用該網(wǎng)站的帶寬資源,而帶寬是要給運(yùn)營(yíng)商付費(fèi)的。同時(shí),該網(wǎng)站的廣告、周邊、宣傳等資源并不會(huì)被用戶訪問(wèn)到。
分布式盜鏈
分布式盜鏈比較復(fù)雜,需要在服務(wù)端部署專門的程序,并不針對(duì)單個(gè)網(wǎng)站或單個(gè)url,而是對(duì)全網(wǎng)的所有有用的資源進(jìn)行盜取,并存儲(chǔ)在自己的數(shù)據(jù)庫(kù)中,并在用戶實(shí)際訪問(wèn)時(shí),完全轉(zhuǎn)換為自己的流量。
危害:自己通過(guò)勞動(dòng)、金錢、版權(quán)付費(fèi)得到的資源,被盜鏈網(wǎng)站免費(fèi)使用,如網(wǎng)店攝影圖、期刊、電視劇等。并因此導(dǎo)致自己的會(huì)員、服務(wù)無(wú)法實(shí)現(xiàn)盈利。
反盜鏈分類
我們了解了盜鏈對(duì)源站的危害后,自然要通過(guò)一些手段來(lái)阻止這種行為維護(hù)自己的利益。
加水印
這是最簡(jiǎn)單的方法,通過(guò)后端程序批量對(duì)圖片等資源加上水印,這樣在盜鏈的同時(shí),也在為自己的網(wǎng)站做宣傳,有時(shí)甚至?xí)鲃?dòng)尋求這種盜鏈。
資源重命名
因?yàn)楸I鏈?zhǔn)峭ㄟ^(guò)指定的url,這個(gè)url中一定包含該資源的路徑和名稱,因此通過(guò)不定期的更改文件或目錄的名稱,能夠快速避免盜鏈,但也會(huì)導(dǎo)致正在下載的資源被中斷。
限制引用頁(yè)
在http請(qǐng)求的頭部信息中,有一個(gè)字段:referer,它代表這個(gè)請(qǐng)求是從哪個(gè)頁(yè)面發(fā)起的,如果是單獨(dú)在頁(yè)面中打開(kāi)或者服務(wù)端請(qǐng)求的,則這個(gè)字段為空。因此我們可以通過(guò)referer這個(gè)字段的值做限制,如果是自己認(rèn)可的頁(yè)面,則返回資源,否則,禁止該請(qǐng)求。但是由于每次都要打開(kāi)一個(gè)白名單的文件做url匹配,因此會(huì)降低性能。
加密認(rèn)證
在客戶端通過(guò)將用戶認(rèn)證的信息和資源的名稱進(jìn)行組合后加密,將加密的字符串作為url的參數(shù)發(fā)起請(qǐng)求,在服務(wù)端進(jìn)行解密并認(rèn)證通過(guò)后,才會(huì)返回請(qǐng)求的資源。這個(gè)方式主要用于防范分布式盜鏈。
反盜鏈程序
上面的3種反盜鏈方式,我們常用的是第三種,通過(guò)referer屬性來(lái)完成反盜鏈,今天也主要分享這一種方法的反盜鏈與防反盜鏈。
后端程序限制
這種限制需要消耗服務(wù)端計(jì)算資源,因此不如Nginx限制常用。
$from=parse_url($_SERVER['HTTP_REFERER']);
if($from['host']!=''$from['host']!=''){
die('你丫在盜鏈');
}
Nginx限制
通過(guò)修改nginx配置文件可以做到,修改完成后記得重啟nginx:
//這里指定需要防盜鏈的資源,如gif/jpg等
location~*\.(gif|jpg|png|jpeg)${
//設(shè)置資源的過(guò)期時(shí)間
expires30d;
//設(shè)置合法的引用頁(yè),也就是防盜鏈的白名單;
//noneblocked保證用戶在新頁(yè)面打開(kāi)時(shí)依然能夠打開(kāi),如果不希望用戶能夠保存刪掉這兩項(xiàng)
valid_referersnoneblocked*.*.*.;
//對(duì)于非法的引用頁(yè),可以重寫圖片,也可以直接返回403或404頁(yè)面
if($invalid_referer){
rewrite^//static/images/404.jpg;
#return404;
}
Referer-Policy
Referer首部包含了當(dāng)前請(qǐng)求頁(yè)面的來(lái)源頁(yè)面的地址,即表示當(dāng)前頁(yè)面是通過(guò)此來(lái)源頁(yè)面里的鏈接進(jìn)入的。服務(wù)端一般使用Referer首部識(shí)別訪問(wèn)來(lái)源,可能會(huì)以此進(jìn)行統(tǒng)計(jì)分析、日志記錄以及緩存優(yōu)化等。
Referer屬性出現(xiàn)在請(qǐng)求頭中,也在請(qǐng)求頭中被設(shè)置,但是在瀏覽器的安全策略里,該值無(wú)法被js所指定:
$.ajax({
url:'',
beforeSend(xhr){
//在發(fā)送ajax請(qǐng)求前設(shè)置header頭部
xhr.setRequestHeader("Referer","/");
xhr.setRequestHeader("User-Agent","stagefright/1.2(Linux;Android5.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ì)被移除。訪問(wèn)來(lái)源信息不隨著請(qǐng)求一起發(fā)送。
no-referrer-when-downgrade(默認(rèn)值):在沒(méi)有指定任何策略的情況下用戶代理的默認(rèn)行為。在同等安全級(jí)別的情況下,引用頁(yè)面的地址會(huì)被發(fā)送(HTTPS-HTTPS),但是在降級(jí)的情況下不會(huì)被發(fā)送(HTTPS-HTTP)。
origin:在任何情況下,僅發(fā)送文件的源作為引用地址。例如/page.html會(huì)將/作為引用地址。
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:無(wú)論是同源請(qǐng)求還是非同源請(qǐng)求,都發(fā)送完整的URL(移除參數(shù)信息之后)作為引用地址。
這個(gè)值可以通過(guò)三種方式來(lái)設(shè)置:
metaname="referrer"content="origin"
ahref=""rel="externalnofollow"rel="externalnofollow"referrerpolicy="origin"
ahref=""rel="externalnofollow"rel="externalnofollow"rel="noreferrer"
防反盜鏈
前端JS不能在頭部設(shè)置Referer字段,和跨域一樣是因?yàn)闉g覽器的安全策略,那么同樣的在服務(wù)端進(jìn)行請(qǐng)求就不會(huì)有這些限制,我們?cè)诜?wù)端請(qǐng)求時(shí)就可以自由的修改Referer字段。
我們通過(guò)簡(jiǎn)單的PHP例子來(lái)完成這個(gè)功能:
$url='/it/u=3008889497,862090385fm=77';
$refer='';
$ch=curl_init();
//以u(píng)rl的形式進(jìn)行請(qǐng)求
curl_setopt($ch,CURLOPT_URL,$url);
//以文件流的形式進(jìn)行返回不直接輸出到瀏覽器
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
//瀏覽器發(fā)起請(qǐng)求超時(shí)設(shè)置
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,30);
//偽造來(lái)源地址
curl_setopt($ch,CURLOPT_REFERER,$refer);
$file=curl_exec($ch);
curl_close($ch);
header('Content-Type:text/html');
//對(duì)圖片進(jìn)行base64編碼,然后返回給前端展示
$file=base64_encode($file);
echo"imgsrc='data:image/jpeg;base64,{$file}'/
我們
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年高壓電工技師考試題庫(kù):高壓絕緣技術(shù)現(xiàn)場(chǎng)施工合同管理策略解析試題
- 2025年特產(chǎn)食品項(xiàng)目立項(xiàng)申請(qǐng)報(bào)告
- 2025年裝卸機(jī)械項(xiàng)目規(guī)劃申請(qǐng)報(bào)告
- 農(nóng)村生物技術(shù)農(nóng)業(yè)種植服務(wù)協(xié)議
- 2025年輔導(dǎo)員招聘考試題庫(kù):教育心理學(xué)科研究方法應(yīng)用前景研究分析探討試題
- 2025年福建泉州市事業(yè)單位招聘考試衛(wèi)生類中醫(yī)學(xué)專業(yè)知識(shí)試卷
- 2025年智能燃?xì)獗眄?xiàng)目申請(qǐng)報(bào)告
- 網(wǎng)絡(luò)游戲?qū)η嗌倌甑挠绊懽h論文11篇范文
- 2025年電梯安裝維修人員考試試卷:電梯機(jī)械部件故障分析與排除案例分析試題
- 2025年電子商務(wù)數(shù)據(jù)可視化與分析測(cè)試試卷
- 大學(xué)生醫(yī)學(xué)健康科普演講
- 2025國(guó)開(kāi)電大《管理英語(yǔ)1》綜合測(cè)試形考任務(wù)答案
- 冶金天車作業(yè)安全培訓(xùn)
- 廣東省深圳市2021-2022學(xué)年高一下學(xué)期英語(yǔ)期末調(diào)研考試(含答案)
- 《馬克思主義基本原理概論》課后思考題及答案
- 公益崗考試試題及答案
- 2025屆成都市新都一中高三一診考試英語(yǔ)試卷含答案
- 煤炭行業(yè)的企業(yè)戰(zhàn)略布局與資源整合考核試卷
- 電動(dòng)二輪車租賃合同協(xié)議
- 電梯維保合同分包協(xié)議
- 靜脈血液標(biāo)本采集指南
評(píng)論
0/150
提交評(píng)論