Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1132913
  • 博文数量: 221
  • 博客积分: 10152
  • 博客等级: 上将
  • 技术积分: 1518
  • 用 户 组: 普通用户
  • 注册时间: 2005-07-22 10:42
文章分类

全部博文(221)

文章存档

2018年(1)

2015年(6)

2014年(3)

2013年(4)

2012年(1)

2011年(5)

2010年(14)

2009年(10)

2008年(28)

2007年(33)

2006年(114)

2005年(2)

我的朋友

分类: 系统运维

2008-04-08 15:15:32

配置Apache 防止图片盗链/即通过apache配置进行图片反盗链

1、假设允许连结图片的主机域名为:
2、修改httpd.conf,增加如下配置

SetEnvIfNoCase Referer "^" local_ref=1

Order Allow,Deny
Allow from env=local_ref

这个简单的应用不光可以解决图片盗链的问题,稍加修改还可以防止任意文件盗链下载的问题。

使用以上的方法当从非指定的主机连结图片时,图片将无法显示,如果希望显示一张“禁止盗链”的图片,我们可以用mod_rewrite 来实现。

首先在安装 apache 时要加上 --enable-rewrite 参数加载 mod_rewrite 模组。

假设“禁止盗链”的图片为,我们在 httpd.conf 中可以这样配置:


RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^.*$ [NC]
RewriteRule \.(jpg|jpg)$ [R,L]


当主机的图片被盗链时,只会看到 这张图片!

阻止内嵌的图片
说明:
假设,~quux/有一些内嵌图片的页面,这些图片很好,所以就有人用超链连到他们自己的页面中了。由于这样徒然增加了我们的服务器的流量,因此,我们不愿意这种事情发生。

方案:
虽然,我们不能100%地保护这些图片不被写入别人的页面,但至少可以对发出HTTP Referer头的浏览器加以限制。

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^~quux/.*$ [NC]
RewriteRule .*\.gif$          -                                      [F]

RewriteCond %{HTTP_REFERER}           !^$
RewriteCond %{HTTP_REFERER}           !.*/foo-with-gif\.html$
RewriteRule ^inlined-in-foo\.gif$     -                          [F]

让apache上的图片有防止盗链的功能
参考文档:
Preventing Image 'Theft' By: Ken Coar
Preventing hot linking of images by JavaScript Kit
SetEnvIfNoCase 和 SetEnvIf 的说明文档


httpd.conf 的修改处

######## Preventing Image 'Theft' ########

SetEnvIfNoCase Referer “^http://(.)+\.fjhr\.com/” local_ref=1
SetEnvIfNoCase Referer “^http://(.)+\.hzmjp\.com/” local_ref=1
SetEnvIfNoCase Referer “^http://(.)+\.dalouis\.com/” local_ref=1
SetEnvIfNoCase Referer “^http://(.)+\.necktie\.gov\.cn/” local_ref=1
SetEnvIfNoCase Referer “^http://(.)+\.necktie\.net\.cn/” local_ref=1
SetEnvIfNoCase Referer “-” local_ref=1
######## Allow the LOGO image Theft ##########
SetEnvIf Request_URI “/images/logo(.)+” local_ref=0


Order Allow,Deny
Allow from env=local_ref

阻止内嵌的图片

说明:

假设,~quux/有一些内嵌图片的页面,这些图片很好,所以就有人用超链连到他们自己的页面中了。由于这样徒然增加了我们的服务器的流量,因此,我们不愿意这种事情发生。

方案:

虽然,我们不能100%地保护这些图片不被写入别人的页面,但至少可以对发出HTTP Referer头的浏览器加以限制。

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^~quux/.*$ [NC]
RewriteRule .*\.gif$         -                                     [F]
RewriteCond %{HTTP_REFERER}          !^$
阅读(1828) | 评论(0) | 转发(0) |
0

上一篇:常见交换机术语

下一篇:MOTO SDK

给主人留下些什么吧!~~