《2022年网站图像防盗Apache配置有妙法IISApache教程.docx》由会员分享,可在线阅读,更多相关《2022年网站图像防盗Apache配置有妙法IISApache教程.docx(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2022年网站图像防盗Apache配置有妙法IISApache教程 每个网站全部者都在尽力美化自己的网站,使它看上去更酷、更具有吸引力,其中最常见的方法就是运用图片、Logo及Flash等。但是,这也会带来一个问题,因为越美丽、越吸引人的网站,美丽的图片和Flash等就简单被别的网站静静的盗用。下面我们就一起探讨如何防止网站图像被盗用。 须要解决的问题 简洁的说,这里有两种不同的盗用行为: 1. 运用HTML标记IMG在自己的网站中引用网站的图片。 2. 从网站上下载图片,然后放在自己的网站上。 对于第一种的盗用行为,合法网站的图片被用来美扮装饰其它网站,这种盗用对合法网站的损害比较大,因为访
2、问非法网站的访问者其实是从合法网站获得图片的,合法网站的日志文件充溢了访问恳求记录,并且带宽被非法访问消耗,而合法网站却没有得到任何好处。这种类型的盗用通过技术手段完全可以被防止。 其次种类型的盗用相对来说比较阴险,阅读者在非法网站干脆访问非法的图片,而合法网站的版权受到侵害,却得不到赔偿,甚至无法发觉这种盗用。因为Web的工作方式对这种类型的盗用事实上无法被阻挡,但是可以使得这种盗用更加困难。 完全杜绝这两种盗用行为是不现实的,但是通过技术手段可以使得这种盗用特别困难。在Apache环境下,通过配置可以限制网站图片被盗用。 标识须要爱护的文件 作为网站管理员,最大的希望就是能够爱护网站上全部
3、文档,但是从技术角度考虑这种想法是不现实的,因此我们这里只探讨对图片文件的爱护。 作为爱护的第一步,首先须要标识出须要爱护的文件,然后才能进一步对被标识的文件进行爱护。在Apache配置文件中添加如下内容: <FilesMatch .(gif|jpg)> 这里添加爱护限制吩咐</FilesMatch> 将容器吩咐包含在或等容器中,或者单独列出,不处于任何爱护容器中,这样就会对网站全部文件进行爱护,甚至可以存放在.htaccess文件。将该容器放在不同的位置,爱护的范围机会有所不同。 Referer HTTP头字段 当用户访问Web服务器恳求一个页面时,用户阅读器发送的H
4、TTP恳求中会有一个被称为HTTP恳求头(HTTP Request Header)的信息,这个头信息中包含客户恳求的一些信息,例如发出恳求客户主机的阅读器版本、用户语言、用户操作系统平台、用户恳求的文档名等,这些信息以变量名/变量值的方式被传输。 在这些信息中,Referer字段对于实现防止图片盗用特别重要。Referer字段指定客户端最终一个页面的URL地址。例如,假如用户访问页面A,然后点击在页面A上到页面B的链接,访问页面B的HTTP恳求会包括一个Referer字段,该字段会包括这样的信息“这个恳求是来自于页面A”。假如一个恳求不是来自于某个页面,而是用户通过干脆在阅读器地址栏输入页面A
5、的URL地址的方式来访问页面A,那么在HTTP恳求中则不会包括Referer字段。这样对于我们防止盗链有什么帮助呢?Referer字段是帮助推断对图像的恳求是来自自己的页面,还是来自其它网站。 运用SetEnvIf对图像进行标记 作为一个简洁的例子,假设须要爱护的网站的主页面为http:/my.apache.org,这时候希望限制全部不是源于本网站的网络访问恳求(例如只允许访问包含在本网站页面内的图片)。这里可以运用一个环境变量作为一个标记,假如条件满意时就设置该变量,如下所示: SetEnvIfNoCase Referer http:/my.apache.org/ local_ref=1 当
6、Apache处理一个恳求时,它会检查HTTP恳求头中的Referer字段,假如该恳求来源于本网站(也就是恳求页面的URL为本网站域名),则设置环境变量local_ref为1。 在双引号中的字符串是一个正则表达式,只有匹配该正则表达式,环境变量才会被设置。本文不探讨如何运用正则表达式,这里只须要理解SetEnvIf*吩咐会运用正则表达式作为参数。 SetEnvIfNoCase吩咐的“NoCase”部分表示这里的正则表达式忽视大小写,http:/my.apache.org/、http:/My.Apache.Org/或 http:/MY.APACHE.ORG/都可以匹配条件。 在访问限制中运用环境变
7、量 Apache配置文件中的Order、Allow和Deny吩咐可以实现对文档的基于环境变量的访问限制,运用Order、Allow和Deny吩咐首先要考虑的是Allow和Deny吩咐的依次对于Apache处理结果的影响,应当以下面的方式运用: Order Allow,Deny 这里表示Apache首先处理该HTTP恳求相关的Allow吩咐,然后处理相关的Deny吩咐。这种处理方式的默认策略是Deny,所以除非有明确的允许的设置,否则该恳求就会被拒绝,任何非法访问将无法胜利。 因此,在Apache的配置文件httpd.conf中添加如下吩咐,来实现本地引用发挥作用: Order Allow,De
8、nyAllow 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
9、Allow,Deny Allow from env=local_ref </FilesMatch> 如上配置可以存放在服务器配置文件httpd.conf中,或者存放在.htaccess文件中,最终的效果是一样的:在这些吩咐作用的范围内,只有从本网站引用的图片才可以被访问。 对图片进行水印处理 上面介绍的方法并不能完全防止图像盗链,这是因为有些执著的盗用者可以伪造Referer值来盗用图片,使相关设置失效,所以不行能完全防止网站图片被盗链,但是上面实行的措施会使得盗链变得很困难。 此外,还有一个防止图片被盗用的方法,就是对网站的图片都进行水印处理。对一个数字图片进行水印处理是指在图片
10、中加入一个特别的签名编码,并且可以进行验证和检测,数字水印并不会降低图片的质量,甚至可以实现图像被切割以后的剩余部分仍旧会包括水印信息。图片被再次编辑、打印,并再次扫描以后,水印仍旧可以被检测到。因此,水印技术是一个特别好的爱护图片不被盗用的技术。 记录盗用恳求 假如想知道自己网站的艺术品是否被盗,可以尝试运用同样的侦测和环境变量来记录可疑恳求。例如,在httpd.conf文件中添加如下吩咐,那么会在/usr/local/web/apache/logs/poachers_log文件中记录全部具有非法的Referer头信息的访问恳求: SetEnvIfNoCase Referer !http:/
11、my.apache.org/ not_local_ref=1SetEnvIfNoCase Request_URI .(gif|jpg) is_image=1RewriteEngine OnRewriteCond ${ENV:not_local_ref} =1RewriteCond ${ENV:is_image} =1RewriteRule .* - Last,Env=poach_attempt:1CustomLog logs/poachers_log CLF env=poach_attempt 在上面代码中,头两行为条件设置标记(也就是没有正确的本地Referer的图片文件),RewriteCond检测是否该标记被设置,然后RewriteRule设置第三个标记,最终一行使得这样的访问恳求被记录在特定的文件中。 上面简洁介绍了在Apache环境下,如何通过配置来限制网站图片被盗用的方法,抛砖引玉,希望大家将自己更好的阅历介绍出来。