squid防盗链的设置

回复 收藏
squid主要应用于图片的缓存,一个大型综合网站,会有很多外边的网站来外链我们的图片,造成图片的访问量很大,从而造成带宽的极大浪费。squid的防盗链功能很好地预防了这种情况的发生。配置如下:

acl allowdomain referer_regex -i "/etc/squid/domain.txt" .aaaa.com  .bbbb.com   //这里是不设置防盗链的域名,并且可以是一个域名列表文件(/etc/squid/domain.txt)
acl nullref referer_regex -i ^$
acl hasref referer_regex -i .+
http_access allow nullref
http_access allow allowdomain
http_access deny hasref
deny_info http://www.example.com/test.jpg hasref
2009-10-21 13:34 举报
已邀请:
0

阿铭 管理员

赞同来自:

以下内容来源网上:
见下面的内容。我设置的例子是在squid上对mp3和wma进行控制防盗链.其实原理很容易啦,主要是对referer进行控制,更加高级的大家可以研究一下用cookie来进行控制。有空我也写个出来.

acl wmvurl url_regex -i \.mp3$   \.wma$ \.exe$
#要控制的后缀,i不区分大小写,$以后缀名结尾

acl phpoaref referer_regex -i ^http://.*\.php-oa\.com
#可以链接的网站,^url开始   .*任意字符串的通配符 \.将元字符转意为普通的.号,这个正则表达式的意思是以http://开头,2级域名不管是什么bbk.php-oa.com或者xxx.php-oa.com全部匹配。

acl legalplayer browser -i Firefox   ^NSPlayer ^contype$ ^rma ^windows-media-player ^foobar2000 ^RealMedia   ^RealPlayer
#要在线直播的软件 ^开始,$结尾
http_access allow legalplayer wmvurl
http_access allow phpoaref wmvurl

#先让上面这些条件都可以的,让他们可以通过

http_access deny !phpoaref wmvurl
http_access deny !legalplayer wmvurl

#先accept后deny.


deny_info http://xxxx/error.jpg   phpoaref

#deny时出错时,给显示的出错的图.
0

無名世界

赞同来自:

本帖最后由 無名世界 于 2014-11-10 10:52 编辑

###设置防图片盗链,其中aaa.com和bbb.com分别是虚拟主机的域名,referer中必须包含有aaa.com或bbb.com的域名才能访问图片#### acl picurl url_regex -i .bmp$ .png$ .jpg$ .gif$ .jpeg$
acl mystie1 referer_regex -i aaa
http_access allow mystie1 picurl
acl mystie2 referer_regex -i bbb
http_access allow mystie2 picurl

#考虑有些referer为空的情况
acl nullref referer_regex -i ^$
http_access allow nullref

#其它referer,直接拒绝访问
acl hasref referer_regex -i .+
http_access deny hasref picurl
0

liupengju

赞同来自:

{:4_91:}

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: