设为首页
加入收藏
站内地图
旧版入口
首 页
新闻资讯
SEO研究
SEO查询
网站运营
站长学院
赚钱联盟
链接交换
下载中心
搜优客论坛
网页制作
网络编程
数据库
图形图像
操作系统
网络应用
当前位置:
首页
>
站长学院
>
操作系统
>
IIS/Apache
网站图片防盗Apache配置有妙法
作者:
yongbo
出处:
落伍者论坛
时间:
10-17
点击:
内容载入中...
每个网站所有者都在尽力美化自己的网站,使它看上去更酷、更具有吸引力,其中最常见的方法就是使用图片、Logo及Flash等。但是,这也会带来一个问题,因为越漂亮、越吸引人的网站,漂亮的图片和Flash等就容易被别的网站悄悄的盗用。下面我们就一起讨论如何防止网站图像被盗用。
需要解决的问题
简单的说,这里有两种不同的盗用行为:
1. 使用HTML标记IMG在自己的网站中引用网站的图片。
2. 从网站上下载图片,然后放在自己的网站上。
对于第一种的盗用行为,合法网站的图片被用来美化装饰其它网站,这种盗用对合法网站的损害比较大,因为访问非法网站的访问者其实是从合法网站获取图片的,合法网站的日志文件充满了访问请求记录,并且带宽被非法访问消耗,而合法网站却没有得到任何好处。这种类型的盗用通过技术手段完全可以被防止。
第二种类型的盗用相对来说比较阴险,浏览者在非法网站直接访问非法的图片,而合法网站的版权受到侵害,却得不到赔偿,甚至无法发现这种盗用。因为Web的工作方式对这种类型的盗用实际上无法被阻止,但是可以使得这种盗用更加困难。
完全杜绝这两种盗用行为是不现实的,但是通过技术手段可以使得这种盗用非常困难。在Apache环境下,通过配置可以限制网站图片被盗用。
标识需要保护的文件
作为网站管理员,最大的希望就是能够保护网站上所有文档,但是从技术角度考虑这种想法是不现实的,因此我们这里只讨论对图片文件的保护。
作为保护的第一步,首先需要标识出需要保护的文件,然后才能进一步对被标识的文件进行保护。在Apache配置文件中添加如下内容:
<FilesMatch ".(gif|jpg)"> [这里添加保护限制命令]
</FilesMatch>
将容器命令包含在或等容器中,或者单独列出,不处于任何保护容器中,这样就会对网站所有文件进行保护,甚至可以存放在.htaccess文件。将该容器放在不同的位置,保护的范围机会有所不同。
Referer HTTP头字段
当用户访问Web服务器请求一个页面时,用户浏览器发送的HTTP请求中会有一个被称为HTTP请求头(HTTP Request Header)的信息,这个头信息中包含客户请求的一些信息,例如发出请求客户主机的浏览器版本、用户语言、用户操作系统平台、用户请求的文档名等,这些信息以变量名/变量值的方式被传输。
在这些信息中,Referer字段对于实现防止图片盗用非常重要。Referer字段指定客户端最后一个页面的URL地址。例如,如果用户访问页面A,然后点击在页面A上到页面B的链接,访问页面B的HTTP请求会包括一个Referer字段,该字段会包括这样的信息“这个请求是来自于页面A”。如果一个请求不是来自于某个页面,而是用户通过直接在浏览器地址栏输入页面A的URL地址的方式来访问页面A,那么在HTTP请求中则不会包括Referer字段。这样对于我们防止盗链有什么帮助呢?Referer字段是帮助判断对图像的请求是来自自己的页面,还是来自其它网站。
使用SetEnvIf对图像进行标记
作为一个简单的例子,假设需要保护的网站的主页面为
http://my.apache.org
,这时候希望限制所有不是源于本网站的网络访问请求(例如只允许访问包含在本网站页面内的图片)。这里可以使用一个环境变量作为一个标记,如果条件满足时就设置该变量,如下所示:
SetEnvIfNoCase Referer "^
http://my.apache.org/
" local_ref=1
当Apache处理一个请求时,它会检查HTTP请求头中的Referer字段,如果该请求来源于本网站(也就是请求页面的URL为本网站域名),则设置环境变量local_ref为1。
在双引号中的字符串是一个正则表达式,只有匹配该正则表达式,环境变量才会被设置。本文不讨论如何使用正则表达式,这里只需要理解SetEnvIf*命令会使用正则表达式作为参数。
SetEnvIfNoCase命令的“NoCase”部分表示这里的正则表达式忽略大小写,‘http://my.apache.org/‘、‘http://My.Apache.Org/‘或 ‘http://MY.APACHE.ORG/‘都可以匹配条件。
在访问控制中使用环境变量
Apache配置文件中的Order、Allow和Deny命令可以实现对文档的基于环境变量的访问控制,使用Order、Allow和Deny命令首先要考虑的是Allow和Deny命令的顺序对于Apache处理结果的影响,应该以下面的方式使用:
Order Allow,Deny
这里表示Apache首先处理该HTTP请求相关的Allow命令,然后处理相关的Deny命令。这种处理方式的默认策略是Deny,所以除非有明确的允许的设置,否则该请求就会被拒绝,任何非法访问将无法成功。
因此,在Apache的配置文件httpd.conf中添加如下命令,来实现本地引用发挥作用:
Order Allow,Deny
Allow from env=local_ref
这样只有在local_ref变量被定义的情况下,该请求才会被允许;否则其它所有请求和访问将会被拒绝,因为这些请求不满足Allow条件。
注意,请不要在.htaccess和httpd.conf中使用容器命令,这里不需要该容器命令,除非有特殊的需求,例如希望Get请求和Post请求进行不同的处理。
把这些相关设置放在一起,在Apache的配置文件中就会有如下内容:
SetEnvIfNoCase Referer "^
http://my.apache.org/
" local_ref=1
<FilesMatch ".(gif|jpg)">
Order Allow,Deny
Allow from env=local_ref
</FilesMatch>
收藏本文:
【
大
中
小
】【
打印页面
】【推荐给朋友】【
关闭窗口
】
<< 上一篇 :
WIN环境下使Apache支持ASP.NET
>> 下一篇 :
Win 2003中提高FSO的安全性
相关新闻
·
网站建设:影响IIS性能的几个因素
·
IIS错误代码大汇总
·
网站图像防盗Apache配置有妙法
·
IIS技巧:网站服务器的搭建与配置
·
如何防止ASP木马在服务器上运行
·
通过HTML工具远程管理IIS
·
[学习] Apache入门经验总结
·
windows下面apache和resin各版本、IIS的组
最新资讯
·
提高IIS网站服务器的效率的八种方法
·
提高IIS网站服务器的效率的八种方法
·
如何测试和调试Apache服务器
·
Apache上的防图片/mp3盗链配置:mod_rewri
·
Web服务器实战三:安全策略综合应用
·
Web实战之七:构筑Web的防火墙
·
Web实战之七:构筑Web的防火墙
·
怎样备份Windows 2000服务器IIS配置
站长学院
[
Windows 9X/XP
]
[
Windows 2000/2003
]
[
Linux/FreeBSD
]
[
邮件系统
]
[
IIS/Apache
]
[
Windows Vista
]
关 键 字:
信息分类:
新闻资讯
SEO研究
网站运营
站长学院
下载中心
推荐信息
本类热点
·
IIS 操作失败诊断指南
·
Apache的ReWrite的应用
·
windows 2000+IIS+PHP5配置全能空
·
如何让系统启动时间减少一半
·
apache 2.2.2 + PHP5.1.4 不能运
·
windows下面apache和resin各版本
·
IIS错误代码大汇总
·
Windows 下配置Apache2,PHP5,M
·
让Windows 2003 Server支持ASP程
·
Apache服务器的设置与优化