template design by http://www.20shx.com/
时间:2014-03-22 发布人:SHX 浏览次数:3131 评论:0
网站的图片被盗链,是一件让人非常郁闷的事情。盗链不仅盗用图片,更直接的问题是用户在下载盗链人网站上的图片时,会给服务器带来压力,导致日志中的访问记录暴涨,而带宽被耗尽。为了打击盗链行为,这里介绍一种方法,让盗链者的某些小伎俩不能得逞--APACHE防盗技术。
对APACHE服务器进行设置后,当盗链者盗链网站的图片时,将输出如图所示的结果。
要防止网站图片被盗链,就有必要先了解盗链的手段,基本可以分为以下两种:
1.盗链者直接使用图片链接引用网站上的图片。
防止这种盗链有两种方法:通过Apache服务器进行控制和使用SESSION变量在程序中进行控制。
2.盗链者直接从网站上下载图片并且复制使用。
这种方式不能完全阻止,只能让它的下载更加的困难而已。防止方法有屏蔽页面中的右键、禁止对网页的下载等。(不过人家一个QQ截图就搞定了,没办法啊。)
下面说说第一种:
Apache防盗链技术的原理与PHP伪静态技术的原理是相同的(可参照http://www.20shx.com/article_2/2014-02-11/17.html),都需要应用Apache的 mod_rewrite.so 模组。
1.Apache服务器的配置文件httpd.conf的修改方法
#LoadModule rewrite_module modules/mod_rewrite.so
将“#”去掉
2.查找httpd.conf文件,找到其中的AllowOverride项,将他的值都修改成All。保存并重启服务器,使修改神效。
3.在网站目录下创建 .htaccess 文件,定义防止网站图片被盗链的方法。
SetEnvIfNoCase Referer "^http://192.168.1.59/" local_ref=1 <FilesMatch ".(gif|jpg)"> Order Allow,Deny Allow from env=local_ref </FilesMatch>
// Referer字段:当Apache处理一个请求时,将检测头信息里的Referer字段,并且设置环境变量local_ref为1,如果请求从本身的网站地址开始,即是本站的一个页面。
// ^http://192.168.1.59/ :是一个正则表达式,为了设置环境变量,Referer值必须与其匹配。
// "NoCase"指令:定义正则表达式的值,忽略字符串的大小写。
// Order Allow,Deny : 设置Apache对当前的请求,将执行列表中的Allow指令,然后重复进行Deny指令。
local_ref:设置了local_ref环境变量的请求,而任何其他的请求将被拒绝,因为它们不符合Allow的条件并且默认是拒绝访问的。
这就是通过Apache服务器来防止图片盗链。后面将介绍SESSION变量防止图片被盗链的方法。
上一篇:AV女优,男优那点事下一篇:没有惊世骇俗的想法,就没有实现他的希望