防盗链基于客户端携带的referer实现,referer是记录打开一个页面之前记录是从哪个页面跳转过来的标 记信息,如果别人只链接了自己网站图片或某个单独的资源,而不是打开了网站的整个页面,这就是盗 链,referer就是之前的那个网站域名。,正常的referer信息有以下几种:
none:请求报文首部没有referer首部, 比如用户直接在浏览器输入域名访问web网站,就没有referer信息。
blocked:请求报文有referer首部,但无有效值,比如为空。
server_names:referer首部中包含本主机名及即nginx 监听的server_name。
arbitrary_string: 自定义指定字符串,但可使用*作通配符。示例: *.timinglee.org www.timinglee.*
regular expression: 被指定的正则表达式模式匹配到的字符串,要使用~开头,例如: ~.*\.timinglee\.com
实现盗链:
在一个web 站点盗链另一个站点的资源信息,比如:图片、视频等
在盗链主机的默认发布目录下写
实现防盗链
基于访问安全考虑,nginx支持通过ngx_http_referer_module模块,检查访问请求的referer信息是否有效 实现防盗链功能
可以return404,也可以重定向到别的地方
最后测试:
防盗链实现成功