本文作者:心月

web資源盜鏈與防盜鏈技術解析

心月IT博客 2019-03-07
摘要:什么是資源盜鏈?簡單的說,就是某些不法的網站,通過在其自身網站程序里未經過許可非法調用其他網站的資源,然后在自己的網站上顯示這些調用的資源,達到了填充自身網站顯示的效果,但是浪費了調用資源網站的網絡流量,造成其他網站的帶寬及服務壓力吃緊,甚至宕機。

1、什么是資源盜鏈

簡單的說,就是某些不法的網站,通過在其自身網站程序里未經過許可非法調用其他網站的資源,然后在自己的網站上顯示這些調用的資源,達到了填充自身網站顯示的效果,但是浪費了調用資源網站的網絡流量,造成其他網站的帶寬及服務壓力吃緊,甚至宕機。


2、模擬盜鏈與防盜鏈

實驗環境:本地apache

php版本:php5.5.38


先在本地建立兩個模擬站點,一個資源模擬站點(test1.com),一個盜鏈站點(test2.com),兩個站點情況如下:

模擬盜鏈與防盜鏈模擬盜鏈與防盜鏈

防盜鏈處理前,從下面的Referer中可以發現,模擬資源站點和模擬盜鏈站點都可以正常請求資源站點的資源。

防盜鏈模擬

.htaccess防盜鏈處理

RewriteEngine On
RewriteCond %{HTTP_REFERER} !test1.com [NC]
RewriteRule .*.(html)$ http://test1.com/error.txt [R,NC,L]

RewriteCond %{HTTP_REFERER} !test1.com [NC] 這一行表示請求來源不是test1.com這個站點。

RewriteRule .*.(html)$ http://test1.com/error.txt [R,NC,L]這一句表示,請求的html頁面來源不是test1.com將跳轉到http://test1.com/error.txt這個頁面。

這里為了模擬方便用的是html頁面防盜鏈,其他文件防盜鏈只需將(html)里的html換成文件后綴即可,多種文件防盜鏈用"|"隔開,如(zip|png|gif);

下圖是通過.htaccess防盜鏈處理后,再次請求的情況,從圖中可以明顯的看出,防盜鏈處理后,無法通過站外訪問站內資源,通過站外盜鏈訪問站內資源時會自動轉向我們設定的盜鏈提示頁面,但依然可以通過站內訪問站內資源。

模擬防盜鏈

盜鏈與防盜鏈的實現原理大致是這樣的,在后面的文章中心月IT技術博客會繼續分享防盜鏈的其他方法。

3、為什么會出現盜鏈

    一般瀏覽一個頁面并不是一次全部傳送到客戶端的,而是最先的一個http請求被傳送回來的是這個頁面的文本,然后通過客戶端的瀏覽器對這段文本的解釋執行,發現還有圖片,那么客戶端的瀏覽器會再發送一條http請求,當這個請求被處理后那么這個圖片文件會被傳送至客戶端,然后瀏覽器會將圖片安放到頁面的正確位置,這樣一個完整的頁面經過發送多條http請求才被完整的顯示。從上面的模擬實驗中在做防盜鏈前,雖然兩個測試站點都能正常請求訪問downloadfile1,但二者的請求來源卻不一樣,正是基于這樣的機制,所以就產生了盜鏈問題。盜鏈不僅損害了原網站的合法利益,還加重了服務器的負擔,同時也還會影響網站數據的統計,尤其對統計數據有嚴格要求的網站。

4、盜鏈的大致分類

最多的是兩類盜鏈,圖片盜鏈(gif、.jpg、.png等)和文件盜鏈(各種下載文件)。被一個訪問量極大的網站盜用,會消耗不少的帶寬。其他盜鏈包括:音頻盜鏈、視頻盜鏈。

5、盜鏈的防范

本文中的模擬防盜鏈中防盜鏈方法只是針對虛擬主機的簡單防盜鏈,后面會心月IT博客會分享更多其他的防盜鏈方法。

文章版權及轉載聲明:

作者:心月 本文地址:http://www.eojird.tw/websecurity/161.html發布于 2019-07-01
文章轉載或復制請以超鏈接形式并注明出處心月IT博客

分享到:
贊(

發表評論

快捷輸入:

    評論列表 (有 0 條評論,人圍觀)參與討論