发布时间:2018-01-10 18:34:16编辑:丝画阁阅读(610)
我们经常会看到在浏览某一图片时会弹出一“403权限禁止”错误,这说明有可能正在浏览的这个网站用到的图片在盗用别的网站图片,而被盗用的网站采用了防盗链技术。那么怎样才能不让自己的网站受害呢?
nginx模块ngx_http_referer_module通常用于阻挡来源非法的域名请求.我们应该牢记,伪装Referer头部是非常简单的事情,所以这个模块只能用于阻止大部分非法请求.我们应该记住,有些合法的请求是不会带referer来源头部的,所以有时候不要拒绝来源头部(referer)为空的请求.
cd /usr/local/nginx/conf/vhostsvim test.conf
server{ listen 80; server_name www.nbwiki.com; index index.html index.htm index.php; root /data/www; # 定义访问日志的路径和格式 access_log /tmp/nginx_access.log main; # 不记录静态文件的的访问日志 location ~ .*.(gif|jpg|jpeg|png|bmp|swf|flv|rar|zip|gz|bz2)$ { access_log off; expires 10d; valid_referers none blocked *.nbwiki.com *.baidu.com *.google.com; if ($invalid_referer) { rewrite ^/ http://www.nbwiki.com/retrun.html; #return 403; } }}
location ~ .*.(gif|jpg|jpeg|png|bmp|swf|flv|rar|zip|gz|bz2) 表示对gif、jpg、png、swf、flv后缀的文件实行防盗链
valid_referers none blocked 表示对 www.nbwiki.com 这2个来路进行判断 if{ }里面内容的意思是,如果来路不是指定来路域名,如果来路不是指定来路就跳转到 http://www.nbwikicom/retrun.html 页面,当然直接返回403也是可以的。
用curl去检测那些invalid_referer能否访问我们网站:
curl -e 可以用来指定referer
curl -e 'http://www.xxx.com/2222' -x127.0.0.1:80 'http://www.nbwiki.com/static/im/test.jpg' -IHTTP/1.1 403 ForbiddenServer: nginxDate: Mon, 22 Aug 2016 08:15:59 GMTContent-Type: text/htmlContent-Length: 168Connection: keep-alive
nginx防盗链指令
语法: referer_hash_bucket_size size;
默认值: referer_hash_bucket_size 64;
配置段: server, location
这个指令在nginx 1.0.5中开始出现.
Sets the bucket size for the valid referers hash tables. The details of setting up hash tables are provided in a separate document.
图片使用来源头部做防盗链是最合理的. 简单、实用。但是没有办法防采集。如果想做文件的防盗链请参考前面章节讲到的使用secure link文件防盗链文章.
最后,配置文件设置完成别忘记重启nginx生效!
关键字:
本站部分内容来源网络及网友上传,本站未必能一一鉴别其是否为公共版权或其版权归属,如果您认为侵犯您的权利,本站将表示非常抱歉!
请您速联系本站,本站一经核实,立即删除。删文删帖联系【2789291421@qq.com】