網站防盜鏈的解決方案html
一、根據http referer實現防盜鏈
在http協議中,有一個表頭字段叫referer,使用URL格式來表示從哪裏來的連接到當前網頁的資源。經過referer能夠檢測目標訪問的來源網頁,若是是資源文件,能夠跟蹤到顯示它的網頁地址,一旦檢測出來來源不是本站進行阻止或返回指定的頁面。apache,nginx,lighttpd三者都支持根據http referer實現防盜鏈。python
二、根據cookie處理nginx
三、經過加密變換訪問路徑實現防盜鏈
lighttpd有相似的插件mod_secdownload。apache
Apache防盜鏈cookie
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]
配置案例,在虛擬主機中的配置:app
<VirtualHost *:80> ServerAdmin 491964349@qq.com 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; } }
要根據公司的業務,是否有外鏈合做,進行設置域名的容許加密
在產品設計上解決盜鏈方案:
將計就計,,,,,爲網站上傳的圖片增長水印等spa