文章15 | 阅读 6188 | 点赞0
nginx的referer防盗链模块,利用http请求头中的 referer 信息进行校验,判断该请求是否为合法请求,是则放行,否则可以自定义返回一个结果,可防止大部分网址引用自己的资源,但是referer是可以伪造的,伪造后可以继续访问资源
nginx模块ngx_http_referer_module通常用于阻挡来源非法的域名请求,默认编译进nginx,可以通过–without-http_referer_module禁用
先搭建Nginx静态资源服务,放几个图片,然后用CSDN外链这个图片,判断搭建的静态资源是否已经开启了防盗链功能
配置文件内容如下:
server {
listen 80;
server_name zy.csxiuneng.com;
#允许跨域访问
#add_header 'Access-Control-Allow-Origin' '*';
location / {
#开启referers防盗链,只能 *.csxiuneng.com 能访问该location下的资源
valid_referers none blocked server_names *.csxiuneng.com;
if ($invalid_referer) {
#盗链时返回403
return 403;
}
alias zhuyu/;
autoindex on;
}
}
invalid_referer变量值,允许访问时值为空,不允许访问时值为1
在nginx/zhuyu/img 下放了几张图片,因为开启了 autoindex on ,访问链接时会以目录的形式返回,可看到img下面有哪些文件
再访问这张图片,可以正常访问
现在用CSDN写文章,插入图片,填写该地址 http://zy.csxiuneng.com/img/1801.jpg,再浏览看是否已防止了CSDN的图片盗链
[外链图片转存失败(img-WQPNaQga-1566791119189)(http://zy.csxiuneng.com/img/1801.jpg)]
通过F12开发者工具可以看到1801.jpg以403响应的,说明防盗链成功
更多
#为了加速访问,可以对referer模块设置共享内存,通过如下指令设置
syntax: referer_hash_bucket_size size;
default: referer_hash_bucket_size 64;
context: server,location
syntax: referer_hash_max_size size;
default: referer_hash_max_size 2048;
context: server,location
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://zhuyu.blog.csdn.net/article/details/91352154
内容来源于网络,如有侵权,请联系作者删除!