很感謝大家幫忙看看。我做了個下載程式,正常情況下可以下載,包括一般的防盜鏈圖片,但有一些防盜鏈圖片無法下載,很奇怪,用IE直接打開圖片的地址,可以打開圖片,但下載就失敗了。如以下地址:
http://img8.tianya.cn/photo/2009/10/6/15320302_2404764.jpg
http://img10.tianya.cn/photo/2009/10/6/15321701_2404764.jpg
http://img11.tianya.cn/photo/2008/8/3/9329327_8479309.jpg
http://img13.tianya.cn/photo/2008/7/24/9137790_8479309.jpg
http://img14.tianya.cn/photo/2008/4/30/7761555_8479309.jpg
http://img15.tianya.cn/photo/2009/10/6/15320173_2404764.jpg
請大家幫忙看看,如何可以實作用程式下載以上圖片呢?非常感謝!!!!!!!!!!!!!
uj5u.com熱心網友回復:
暈,用PB做下載!防盜鏈其實就是采用服務器端編程,通過url過濾技術實作的防止盜鏈的軟體。
可偽造Referer
http://topic.csdn.net/u/20070813/00/262cb43a-7515-4a27-8685-2d2192ba4df0.html
uj5u.com熱心網友回復:
不懂,幫頂.uj5u.com熱心網友回復:
請問PB可以實作嗎?uj5u.com熱心網友回復:
主要是服務器采用了防盜鏈處理了,防盜鏈 防盜鏈其實就是采用服務器端編程,通過url過濾技術實作的防止盜鏈的軟體。
比如file.uudog.com/test.rar 這個下載地址,如果沒有裝防盜鏈,別人就能輕而易舉的在他的網站上參考這個地址。
如果對file.uudog.com 這個站的服務器端編程,比如通過file.uudog.com/test.rar?authcode=xxxxxxxxxxxxxxxx&ip=127.0.0.1 系結了ip,只能通過127.0.0.1來訪問這個鏈接,其他ip都不可以的。
網站的防盜鏈系統是如何做的?
2006-05-10 10:25作者:龍犢整理出處:天極網責任編輯:龍犢
防盜鏈原理:
http標準協議中有專門的欄位記錄referer
一來可以追溯上一個入站地址是什么
二來對于資源檔案,可以跟蹤到包含顯示他的網頁地址是什么。
因此所有防盜鏈方法都是基于這個Referer欄位
網上比較多的2種
一種是使用apache檔案FileMatch限制,在httpd.conf中增加 ( 其實也可以將把下面的陳述句存成一個.htaccess檔案),并放到你的網站的根目錄(就是www/html目錄),這樣子別人就沒有辦法盜連你的東東了~~
SetEnvIfNoCase Referer "^http://yahoo.com/" local_ref=1
Order Allow,Deny
Allow from env=local_ref
Allow from 127.0.0.1
這種很方便禁止非允許訪問URL參考各種資源檔案
請大家注意,把第一句"^http://yahoo.com/"改為你的網站,比如我的網站是: http://www.linji.cn
我應該這么寫的
"^http://www.linji.cn/"
第二種是使用rewrite,需要增加apache的mode_rewrite,支持.htaccess檔案目錄權限限制
在虛擬主機根目錄增加.htaccess檔案,描述從定向,把非本地地址refer的圖片檔案都從定向到警告圖片或者警告網頁上。
首先要確認你的服務器或空間的服務器解譯引擎為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://aaoo.net/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://aaoo.net$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.aaoo.net/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.aaoo.net$ [NC]
RewriteRule .*.(jpg|jpeg|gif|png|bmp|rar|zip|exe)$ http://down.yoyo.com.ru/err.html [R,NC]
其中有色的地方都是要改為你的:
紅色:就是改為你提供下載頁面的地址,也就是只有通過這個地址才可以下載你所提供的東東。
藍色:就是要保護檔案的擴展名(以|分開),也就是說以這些為擴展名的檔案只有通過紅色的地址才可以訪問。
綠色:如果不是通過紅色的地址訪問藍色這些為擴展名的檔案時就回重定向到綠色地址上。
這個方法有個好處是,不同的虛擬主機用不同的描述定義。
接下就是怎么用 .htaccess 檔案來實作防盜鏈了。
首先要在空間上建兩個目錄(當然目錄名隨你),一個為 web 另一個為 down ,
web 是用來放下載頁面的(或下載程式),down 當然就是放你提供的東東的啦,
把 .htaccess 檔案的紅色部分改一下,改為http://你的域名/web。藍色部分
改為你要保護檔案的擴展名。綠色部分改為http://你的域名/web。改后保存
.htaccess 檔案把它上傳到 down 目錄。
還有第三種:
我在解決plog禁止盜鏈的時候,發現個問題,也算個好方法。
plog把所有資源都自己管理起來,用resserver.php來動態顯示,這樣統一的入口方便添加權限操作。
同時造成上面2種方法無法使用,因為不再是apache直接訪問資源檔案,而是php通過檔案讀取。
因此只能在代碼中做手腳:在讀取資源檔案輸出之前,加如下判斷代碼
參考
$referer = $_SERVER['HTTP_REFERER'];
$selfurl = $_SERVER['HTTP_HOST'];
if(false == strpos($referer,$selfurl))
{
echo '非法盜鏈!';
exit(1);
}
這里有些偷懶,直接看參考地址中是否包含host地址,不過原理就是這樣,判斷referer是否是本站地址。
我們常常在下載的時候,也碰到盜鏈網站無法下載,報盜鏈的問題。要下載這類檔案最簡單的方法就是改referer
比方flashget中,網址下面的"參考"一欄中,直接填寫下載地址就可以了
uj5u.com熱心網友回復:
看上去就很難uj5u.com熱心網友回復:
Access Denied.拒絕訪問
你當然下載不了了。
uj5u.com熱心網友回復:
如果只是防盜的原因,你可以用正常可以看的方法取到臨時目錄里,再把這個檔案讀出來。不過有點復雜。原來的時候在網上還聽過一個用抓屏的方法取圖片的,也是個不錯的思路。這個可能會更復雜。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/92193.html
標籤:腳本語言
上一篇:請問這段代碼是什么意思?
下一篇:為什么不能備份
