• 欢迎来到小爱博客,一个分享互联网IT技术的网站,喜欢就收藏吧!

nginx使用referer防盗链

nginx 小爱 2个月前 (08-21) 139次浏览 已收录 1个评论 扫描二维码

内容包括:
1 Nginx Referer 模块
2 valid_referers 指令
3 测试Nginx 防盗链

1 Nginx Referer模块
当一个请求头的Referer字段中包含一些非正确的字段,这个模块可以禁止这个请求访问站点。
这个头可以随意的伪造,因此,使用这个模块并不能100%的阻止这些请求,绝大多数拒绝的请求来自一些典型的浏览器,可以认为这些典型的浏览器并不能提供一个”Referer”头,甚至是那些正确的请求。

2 valid_referers 指令
语法:valid_referers [none|blocked|server_names] …
默认值:no
使用字段:server, location
这个指令在referer头的基础上为 $invalid_referer 变量赋值,其值为0或1
可以使用这个指令来实现防盗链功能,如果valid_referers列表中没有Referer头的值, $invalid_referer将被设置为1。
参数可以使如下形式:
none 意为不存在的Referer头(表示空的,也就是直接访问,比如直接在浏览器打开一个图片)
blocked 意为根据防火墙伪装Referer头,如:“Referer: XXXXXXX”。
server_names 为一个或多个服务器的列表,0.5.33版本以后可以在名称中使用“*”通配符

3 测试
3.1 正常的Referer
firefox 浏览器(get)http://bbs.test.com/uc_server/p_w_picpaths/noavatar_small.gif

3.1.1 请求头信息原始头信息
Accept    text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding    gzip, deflate
Accept-Language    zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Connection    keep-alive
Host    bbs.test.com
User-Agent    Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:14.0) Gecko/20100101 Firefox/14.0.1

3.1.2 nginx 日志格式

3.1.3 nginx 日志referer字段
10.0.100.82 – – [24/Aug/2014:10:50:00 +0800] “GET / HTTP/1.1” 200 6166 “-” “Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:14.0) Gecko/20100101 Firefox/14.0.1″ 192.168.4.33  #注意:”-” 表示referer空白,这里直接在浏览器打开一个图片

3.2. 使用Referer防盗链
3.2.1 nginx 代码

3.2.2 firefox 浏览器 URL
URL:http://192.168.57.75/index.html

注意:index.html 包含noavatar_small.gif

3.2.3 请求头信息原始头信息
Accept    p_w_picpath/png,p_w_picpath/*;q=0.8,*/*;q=0.5
Accept-Encoding    gzip, deflate
Accept-Language    zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Connection    keep-alive
Host    bbs.test.com
Referer    http://192.168.57.75/
User-Agent    Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:14.0) Gecko/20100101 Firefox/14.0.1

3.2.4 nginx 日志referer字段
192.168.4.33 – – [24/Aug/2014:10:55:05 +0800] “GET /uc_server/p_w_picpaths/noavatar_small.gif HTTP/1.1″ 403 162 “http://192.168.57.75/” “Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:14.0) Gecko/20100101 Firefox/14.0.1” –


小爱博客 , 版权所有
转载请注明原文链接:nginx使用referer防盗链
喜欢 (7)
【你的支持, 我的动力】
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(1)个小伙伴在吐槽
  1. 赞一个
    浙江的我2020-09-22 11:33 回复