且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

配置防盗链

更新时间:2022-09-13 16:47:24

通过限制referer来实现防盗链的功能
什么是防盗链?
而refer就是A站点,在B服务器上传图片,用户访问A服务器,A上做超链接到了B服务器上,图片是B服务器上发出去的,对B机器来说没有任何的意义。A导致B服务器流量增加。A服务访问速度提升,可以免费使用带宽资源。

解决办法:
1.把A上传在B机器上的图片删除,这样流量降下来。因为用户访问图片,会调用这个图片404
2.配置防盗链。不认识的refer不让访问(第三方站点不能去引用)。图片是A服务器自己的,但是访问的地址是A域名,然后在B域名去引用,这是不允许的。只有A域名访问

配置文件增加如下内容
<Directory /data/wwwroot/www.123.com> //定义防盗链的目录。就是DocumentRoot
SetEnvIfNoCase Referer "http://www.123.com" local_ref //设置白名单
SetEnvIfNoCase Referer "http://123.com" local_ref
SetEnvIfNoCase Referer "^$" local_ref //空的referer也设置白名单
<filesmatch ".(txt|doc|mp3|zip|rar|jpg|gif |png)"> //这些访问设置白名单
Order Allow,Deny //访问控制。Order定义先允许还是先拒绝
Allow from env=local_ref //这个的目的就是先把白名单的两个refer做一个允许,其他的拒绝
</filesmatch>
</Directory>

测试:
Windows直接访问为Forbidden为空refer
空refer的意思就是复制这个链接直接在浏览器中搜索。
先让空refer能访问需要到配置中设置
SetEnvIfNoCase Referer "^$" local_ref 
配置防盗链

解决办法:需要把111.com/qq.jpg这个链接上传到配置文件中设置的白名单网站中。

而这个网站地址就是refer
配置防盗链
curl -e "http://www.aminglinux.com/123.html" //-e自定义referer
curl -e "http://www.baidu.com" -x192.168.211.149:80 111.com/qq.jpg -I
HTTP/1.1 403 Forbidden




本文转自 虾米的春天 51CTO博客,原文链接:http://blog.51cto.com/lsxme/2054735,如需转载请自行联系原作者