網(wǎng)站的防盜鏈系統(tǒng)是如何做的?

2022-12-08    分類: 網(wǎng)站建設

防盜鏈原理:
http標準協(xié)議中有專門的字段記錄referer

一來可以追溯上一個入站地址是什么

二來對于資源文件,可以跟蹤到包含顯示他的網(wǎng)頁地址是什么。

因此所有防盜鏈方法都是基于這個Referer字段

網(wǎng)上比較多的2種

一種是使用apache文件FileMatch限制,在httpd.conf中增加 ( 其實也可以將把下面的語句存成一個.htaccess文件),并放到您的網(wǎng)站的根目錄(就是www/html目錄),這樣子別人就沒有辦法盜連您的網(wǎng)站內容。

SetEnvIfNoCase Referer "^http://www.youdomain.com/" local_ref=1

Order Allow,Deny

Allow from env=local_ref

Allow from 127.0.0.1

這種很方便禁止非允許訪問URL引用各種資源文件

請大家注意,把第一句"^http://www.youdomain.com/"改為您的網(wǎng)站,比如我的網(wǎng)站是:http://www.mydomain.cn

我應該這么寫的

"^http://www.mydomain.cn/"

第二種是使用rewrite,需要增加apache的mode_rewrite,支持.htaccess文件目錄權限限制

虛擬主機根目錄增加.htaccess文件,描述從定向,把非本地地址refer的圖片文件都從定向到警告圖片或者警告網(wǎng)頁上。

首先要確認您的服務器或空間的服務器解譯引擎為Apache2,還有支持.htaccess客戶設置文件,

如果您有自己的服務器就請先對./conf/httpd.conf 文件做以下修改

找到:#LoadModule rewrite_module modules/mod_rewrite.so

把前面的 # 給取消

找到等一個 AllowOverride None 改為 AllowOverride All

重啟Apache2服務器

接下就是做一個 .htaccess 文件了,其 .htaccess 文件內容為

RewriteEngine on

RewriteCond %{HTTP_REFERER} !^http://domain.com/.*$ [NC]

RewriteCond %{HTTP_REFERER} !^http://domain.comt$ [NC]

RewriteCond %{HTTP_REFERER} !^http://www.domain.com/.*$ [NC]

RewriteCond %{HTTP_REFERER} !^http://www.domain.com$ [NC]

RewriteRule .*.(jpg|jpeg|gif|png|bmp|rar|zip|exe)$http://youdomain.com/err.html[R,NC]

其中有色的地方都是要改為您的:

紅色:就是改為您提供下載頁面的地址,也就是只有通過這個地址才可以下載您所提供的東東。

藍色:就是要保護文件的擴展名(以|分開),也就是說以這些為擴展名的文件只有通過紅色的地址才可以訪問。

綠色:如果不是通過紅色的地址訪問藍色這些為擴展名的文件時就回重定向到綠色地址上。

這個方法有個好處是,不同的虛擬主機用不同的描述定義。

接下就是怎么用 .htaccess 文件來實現(xiàn)防盜鏈了。

首先要在空間上建兩個目錄(當然目錄名隨您),一個為 web 另一個為 down ,

web 是用來放下載頁面的(或下載程序),down 當然就是放您提供的東東的啦,

把 .htaccess 文件的紅色部分改一下,改為http://mydomain.com/web。藍色部分

改為您要保護文件的擴展名。綠色部分改為http://mydomain.com/web。改后保存

.htaccess 文件把它上傳到 down 目錄。

還有第三種:

在解決plog禁止盜鏈的時候,發(fā)現(xiàn)個問題,也算個好方法。

plog把所有資源都自己管理起來,用resserver.php來動態(tài)顯示,這樣統(tǒng)一的入口方便添加權限操作。

同時造成上面2種方法無法使用,因為不再是apache直接訪問資源文件,而是php通過文件讀取。

因此只能在代碼中做手腳:在讀取資源文件輸出之前,加如下判斷代碼

引用

$referer = $_SERVER['HTTP_REFERER'];

$selfurl = $_SERVER['HTTP_HOST'];

if(false == strpos($referer,$selfurl))

{

echo '非法盜鏈!';

exit(1);

}

這里是直接看引用地址中是否包含host地址,不過原理就是這樣,判斷referer是否是本站地址。

網(wǎng)頁題目:網(wǎng)站的防盜鏈系統(tǒng)是如何做的?
文章分享:http://muchs.cn/news41/220541.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、網(wǎng)站營銷網(wǎng)站排名、Google網(wǎng)站設計、小程序開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設