设为首页收藏本站

莆田恒心技术学校

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 2458|回复: 3

[教程] PHP技巧 修改httpd.conf防止图片文件被盗链或下载

[复制链接]
发表于 2012-11-6 21:54:14 | 显示全部楼层 |阅读模式
1、假设充许连结图片的主机域名为:www.hc3000.com
2、修改httpd.conf
SetEnvIfNoCase Referer "^http://www.hc3000.com/" local_ref=1
<FilesMatch ".(gifjpg)">
Order Allow,Deny
Allow from env=local_ref
</FilesMatch>  

这个简单的应用不光可以解决图片盗链的问题,稍加修改还可以防止任意文件盗链下载的问题。
使用以上的方法当从非指定的主机连结图片时,图片将无法显示,如果希望显示一张“禁止盗链”的图片,我们可以用mod_rewrite 来实现。
首先在安装 apache 时要加上 --enable-rewrite 参数加载 mod_rewrite 模组。
假设“禁止盗链”的图片为abc.gif,我们在 httpd.conf 中可以这样配置:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?xjcncn.com /.*$ [NC]
RewriteRule \.(gifjpg)$ [url=http://www.xjcncn.com/school/UploadFiles_2700/200706/20070628105851294.gif%3C/A%3E%20[R,L]%C2%A0%20%3CBR%3E%C2%A0%3CBR%3E%E5%BD%93%E4%B8%BB%E6%9C%BA%E7%9A%84%E5%9B%BE%E7%89%87%E8%A2%AB%E7%9B%97%E9%93%BE%E6%97%B6%EF%BC%8C%E5%8F%AA%E4%BC%9A%E7%9C%8B%E5%88%B0%20abc.gif%20%E8%BF%99%E5%BC%A0%E2%80%9C%E7%A6%81%E6%AD%A2%E7%9B%97%E9%93%BE%E2%80%9D%E7%9A%84%E5%9B%BE%E7%89%87%EF%BC%81%3C/P%3E%3CP%3E%E4%B8%80%E6%AE%B5%E9%98%B2%E7%9B%97%E8%BF%9E%E7%9A%84PHP%E4%BB%A3%E7%A0%81%3C/P%3E%3CP%3E%3C?php%3CBR%3E$ADMIN[defaulturl]%20=]http://www.163.com/404.htm";//[/url]盗链返回的地址
$okaysites = array("[url=http://www.163.com/%22,%22http://163.com]http://www.163.com/","http://163.com[/url]"); //白名单
$ADMIN[url_1] = "http://www.163.com/download/";//下载地点1
$ADMIN[url_2] = "";//下载地点2,以此类推
$reffer = $HTTP_REFERER;
if($reffer) {
$yes = 0;
while(list($domain, $subarray) = each($okaysites)) {
if (ereg($subarray,"$reffer")) {
$yes = 1;
}
}
$theu = "url"."_"."$site";
if ($ADMIN[$theu] AND $yes == 1) {
header("Location: $ADMIN[$theu]/$file");
} else {
header("Location: $ADMIN[defaulturl]");
}
} else {
header("Location: $ADMIN[defaulturl]");
}
?>
防止文件盗链目标与要求
下面首先将我们欲实现的目标介绍一下:



  • 统一在网站根目录下的 .htaccess 设置:虽然理论上而言,在Apache中,可以针对每个目录分别设置 .htaccess ,通过权限的继承与覆盖可以实现相当复杂的功能。不过,过多的 .htaccess 往往会增加管理的难度,有时候百密难免有一疏,修改 .htaccess 稍有遗漏便可能造成网站出现问题。
  • 默认情况下禁止其他网站盗链:对图片文件而言,当其他网站使用 <img src=’http://yoursite.com/someimg’> 盗链时自动重定向至类似右图所示的图片,声明版权及宣传您的网站。当然,从降低对服务器带宽占用的角度考虑,这个图片文件不能过大,您也可以简单地拒绝其访问,让其网页上图片位置以红“x”号代替。
  • 允许特定访问来源:单纯针对图片文件来说,事实上也不可能禁止所有除您自身网站之外的其他访问,比如说Google,如果您希望通过Google图片搜索获得一定访问的话,必须让其能够正确读取真正的图片文件,再如应能够让RSS订阅用户看到feed中的图片,这就要求允许来自bloglines等的访问。
  • 允许特定目录下的文件被外部网站使用:完全禁止外部网站有时会带来不便,很多时候,我们自己也可能需要在外部网站使用部分文件。当然,放入这些目录的文件要有一定限制,不然,便失去设置防盗链的意义了。
设置 .htaccess 禁止图片盗链
下面即为博客学堂禁止图片盗链的 .htaccess 设置部分:
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/(allow1|allow2)
RewriteRule ^.*$ - [L]

首先,设置允许可“盗链”即外部网站可以使用的文件所处目录,上面我们设置了两个目录,分别为allow1与allow2,当然,如果您只有一个目录的话,可以将其改为:
RewriteCond %{REQUEST_URI} ^/allow1
接下来判断是否为图片文件:
RewriteCond %{REQUEST_FILENAME} \.(gif|jpeg|png)$ [NC]
您也可以根据自己的需要设置更多的文件类型。
RewriteCond %{HTTP_REFERER} !^$
上面这一行意在允许空“HTTP_REFERER”的访问,即允许用户在浏览器地址栏中直接输入图片地址时图片文件的显示。一般而言,这是可选的,不过,建议这么设置,如果强迫必须具有“HTTP_REFERER”才能访问,可能会带来某些问题,比如说在用户通过代理服务器访问时。
RewriteCond %{HTTP_REFERER} !blogsdiy\.org [NC]
RewriteCond %{HTTP_REFERER} !google\.com [NC]
RewriteCond %{HTTP_REFERER} !baidu\.com [NC]
RewriteCond %{HTTP_REFERER} !bloglines\.com [NC]
RewriteCond %{HTTP_REFERER} !feedburner\.com [NC]

设置允许访问的HTTP来源,包括博客学堂自身、Google、Baidu、Bloglines、Feedburner等。
RewriteRule (.*) /allow1/leech.gif [R,NC,L]
将不满足上述条件的访问重定向至leech.gif。您可能已经注意到,leech.gif位于允许“盗链”的目录allow1下,这一点很重要,不然,您的警告信息图片将无法在对方网站上显示。
如此,即实现了我们预先设定的防止图片盗链目标。
其他类型文件的防盗链设定
如果您的网站上存在其他类似体积较大较耗费带宽的文件如flash、mp3被其他网站盗链,可以同样采取上述策略,比如说,对Flash文件,可用类似如下的设置:
RewriteCond %{REQUEST_URI} ^/allow1
RewriteRule ^.*$ - [L]
RewriteBase /
RewriteCond %{REQUEST_FILENAME} \.swf$ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !blogsdiy\.org [NC]
(……其他允许访问来源)
RewriteRule (.*) /allow1/leech.swf [R,NC,L]

当然,需要事先创建一个声明版权信息的flash文件“leech.swf”。其他诸如防止mp3文件、压缩文件(zip或rar)盗链的设置与此类似,不再赘述。
使用方法:将上述代码保存为dao4.php
回复

使用道具 举报

发表于 2013-5-20 05:44:01 | 显示全部楼层
做做看哦,谢谢提供












EP影院最新最全的电影网站之一,2013最新电影 数字影院  最新电影  最新电视剧
回复 支持 反对

使用道具 举报

发表于 2013-5-23 17:33:24 | 显示全部楼层
顶下再看哈












域名申请 zc569.com   高清电影  百度影音
回复 支持 反对

使用道具 举报

发表于 2015-8-9 02:07:21 | 显示全部楼层
真是好东西呀












封门诡影  szdlyl.com/aiqingpian/52510/
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|莆田恒心技术学校   

GMT+8, 2018-1-23 09:50 , Processed in 0.156250 second(s), 21 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表