1. 程式人生 > >防盜鏈

防盜鏈

round virtual radmin roo 虛擬 invalid www. flv url

網站防盜鏈的解決方案

1、根據http referer實現防盜鏈
在http協議中,有一個表頭字段叫referer,使用URL格式來表示從哪裏來的鏈接到當前網頁的資源。通過referer可以檢測目標訪問的來源網頁,如果是資源文件,可以跟蹤到顯示它的網頁地址,一旦檢測出來來源不是本站進行阻止或返回指定的頁面。apache,nginx,lighttpd三者都支持根據http referer實現防盜鏈。

2、根據cookie處理

3、通過加密變換訪問路徑實現防盜鏈
lighttpd有類似的插件mod_secdownload。

Apache防盜鏈

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://blog.etiantian.org/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://blog.etiantian.org$ [NC]
RewriteCond %{HTTP_REFERER} !^http://bbs.etiantian.org/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://bbs.etiantian.org$ [NC]
RewriteRule .*\.(gif|jpg|swf)$ http://www.etiantian.org/img/nolink.jpg [R,NC]

配置案例,在虛擬主機中的配置:

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "/var/html/bbs"
    ServerName bbs.etiantian.org
    ErrorLog "logs/bbs-error_log"
    CustomLog "|/usr/local/sbin/cronolog /app/logs/access_bbs_%Y%m%d.log" combined
    
	RewriteEngine On
    RewriteCond %{HTTP_REFERER} !^http://blog.etiantian.org/.*$ [NC]
    RewriteCond %{HTTP_REFERER} !^http://blog.etiantian.org$ [NC]
   # RewriteCond %{HTTP_REFERER} !^http://bbs.etiantian.org/.*$ [NC]
   # RewriteCond %{HTTP_REFERER} !^http://bbs.etiantian.org$ [NC]
    RewriteRule .*\.(gif|jpg|swf)$ http://www.etiantian.org/img/timg.jpg [R,NC]
	
</VirtualHost>

Nginx 防盜鏈

location ~* \.(gif|jpg|png|swf|flv)$ { 
  valid_referers none blocked *.etiantian.org ; 
  if ($invalid_referer) { 
    rewrite ^/ http://www.etiantian.org/nolink.jpg; 
    #return 403; 
  } 
} 

要根據公司的業務,是否有外鏈合作,進行設置域名的允許


在產品設計上解決盜鏈方案:
將計就計,,,,,為網站上傳的圖片增加水印等

防盜鏈