PHP图片防盗链工具:Hotlink Protection_PHP教程
Hotlink Protection的原理是利用Apache的RewriteCond功能,在得到文件請求時檢測請求REFERER,只有是本網站的URL才放行。這個原理很適合自制頭像的保護,因為頭像只應該在本網站內部使用。
下面以discuz為例,說一下使用方法:烈……火……網……防……盜……鏈
Discuz的內置頭像保存在/forum/images/avatars/目錄下,我只想保護這些內置頭像,用戶上傳的頭像和其他圖片不去限制別人引用,因此RewriteCond代碼放置在此目錄即可:
Copy to Clipboard引用的內容:[www.bkjia.com]
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://bkjia.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://bkjia.com$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.bkjia.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.bkjia.com$ [NC]
RewriteRule .*\.(jpg|jpeg|gif|png)$ http://www.bkjia.com/img/hp.gif [R,NC]
四個RewriteCond排除四種訪問自己網站的方法,分別是不帶www訪問網站下某頁面、不帶www訪問網站首頁、帶www訪問網站下某頁面和帶www訪問網站首頁。符合這四種情況外的HTTP_REFERER,并且文件以jpg或jpeg、gif、png結尾則轉到http://www.bkjia.com/img/hp.gif文件處。
把這個文件保存為.htaccess,上傳到/forum/images/avatars/目錄下即可。如想保護整個網站的圖片則上傳到根目錄;如想保護其他格式的文件則直接在RewriteRule中添加擴展名。
順便說一句:這種方法有一定的局限性,比如某些下載工具可以發送自定的“引用”值;此外有些用戶安裝的防火墻、殺毒軟件會阻止瀏覽器發送HTTP_REFERER值給服務器,因此他們正常瀏覽會受影響。真不知道這類防火墻軟件廠商是怎么想的,因為這最多只涉及隱私(而且主要是HTTP_REFERER網站的隱私,跟訪問者沒什么關系),而網絡安全無關。
http://www.bkjia.com/PHPjc/364608.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/364608.htmlTechArticleHotlink Protection的原理是利用Apache的RewriteCond功能,在得到文件請求時檢測請求REFERER,只有是本網站的URL才放行。這個原理很適合自制頭像的...
總結
以上是生活随笔為你收集整理的PHP图片防盗链工具:Hotlink Protection_PHP教程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Visual Studio 2008 B
- 下一篇: 说不尽的蒙古人:推荐多兰的诗歌