防盗链工作原理
通过Referer或者签名,网站可以检测目标网页访问的来源网页,如果是资源文件,则可以跟踪到显示它的网页地址,一旦检测到来源不是本站即进行阻止或者返回指定页面。
实现方法
第一种:利用Nginx模块 ngx_http_referer_module
1 2 3 4 5 6 7 8 9
| # nginx配置 location ~ .*\.(gif|jpg|jpeg|png)$ { valid_referers none blocked test.com *.test.com; if ($invalid_referer) { return 403; # rewrite ^/ http://www.test.com/403.jpg; } }
|
第二种:利用Nginx模块 HttpAccessKeyModule
1 2 3 4 5 6 7 8 9 10 11
| # nginx配置 location ~ .*\.(gif|jpg|jpeg|png)$ { accesskey on; accesskey_hashmethod md5; accesskey_arg 'key'; accesskey_signature "mypass$remote_addr"; }
# php输出图片
<img src="http://test.com/1.jpg?key=#signature#" />
|