基于Nginx虚拟主机设置资源防盗链的简单方法
507 字
3 分钟
基于Nginx虚拟主机设置资源防盗链的简单方法
基于nginx的 valid_referer变量可以实现这一功能。
referer是http协议request header中的一个字段,这个字段可以简单的理解为“经手人”,当我们访问某个网站时,我们向这个网站的nginx web server发起了请求,请求解析完成后 nginx会将各种资源和源代码返回给客户端并进行渲染,因此,我们访问的网站可以被视为是我们访问这些静态文件的“经手人”。通过对referer进行限制,可以防止第三方对于资源的获取。
以下代码是一个例子:
valid_referers *.example.com;#定义了合法的referer,二级域名为example.com的所有网站都是合法的refererif ($invalid_referer) #如果referer不合法,则 invalid_referer为1{ return 403; #返回403代码 - 无权限访问}alias /www/wordpress/resources/image/;使用这种方法,所有非指定的referer的访问都会被拒绝,因此,如果用户只是想保存一张图片,仍会收到403错误代码;
下面是另一种方法:
valid_referers none blocked *.example.com; #当referer为空或referer为指定的二级域名时, invalid_referer为0referer if ($invalid_referer) { #如果referer不合法,则 invalid_referer为1 return 403; #返回403代码 - 无权限访问}alias /www/wordpress/resources/image/;none表示空的referer,也就是直接访问,比如直接在浏览器打开一个文件;
blocked表示被防火墙标记过的来路,*..com表示所有子域名。
然而这种方法又存在另外一个缺陷,那就是由于空referer被视为合法,第三方可以通过隐藏referer来实现对资源的盗取。
综上所述,这两种方法都存在缺陷,最好的方法还是通过设置CDN来限制IP来源。
但是既然你已经用了这种方法了,说明你的网站大概率不是什么热门站点。。大概率不会受到那么多资源窃取,因此也不必太过担心。
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!
基于Nginx虚拟主机设置资源防盗链的简单方法
https://white-festa.net/posts/nginx-referer/ 最后更新于 2022-09-22,距今已过 1301 天
部分内容可能已过时
相关文章 智能推荐
1
WordPress修改上传媒体文件大小限制
CMS 2022-05-20
2
提升网站安全性和安全评估等级的方法
Networks 通过禁用TLS1.0与启用HSTS来提高站点安全性
3
LNMP单机拆分为集群并对wordpress实现负载均衡
Web架构 从0到1实现Tomcat的负载均衡与Nginx动静态资源分离,配合ansible playbook做软件安装
4
单机部署LNMP架构
Web架构 练习 - 部署LNMP单点架构
5
Tomcat结合Nginx实现负载均衡与动静态分离
Web架构 从0到1实现Tomcat的负载均衡与Nginx动静态资源分离,配合ansible playbook做软件安装
随机文章 随机推荐