A-A+

一段防盗链的PHP代码

2013年10月03日 PHP技术文章 评论 12 条 阅读 447 views 次

盗链是指服务提供商自己不提供服务的内容,而是通过技术在自己站点显示其它服务提供商的服务内容,骗取最终用户的浏览和点击率。受益者则不提供资源或提供很少的资源,而真正的服务提供商却得不到任何的收益。

网站的盗链会使原提供商消耗大量的带宽,严重影响被盗链网站的利益,盗链刚出现时,一般都是以大门户站为主,主要盗取大门户站的内容,盗链的形式多种多样,比如图片盗链、音频盗链、视频盗链、文件盗链等。

随着互联网内容需求量的增加,盗链不再局限在大型门户站上面了,而是将目光放到了整个互联网上面,而独立的小博客也成了盗链严重的区域了,现如今,一些大型的网站已经开始了反盗链的技术,我们常常看到一些站点图片上显示“此图片来自QQ空间,未经允许不可引用”等的字样。

那么这样的链接技术是如何实现的呢,我们可以通过服务器的 IIS 或 阿帕奇 来进行批量设置,这种方法较简单一些,不过要有服务器的控制权限,除了操作服务器的设置外,我们还可以通过技术代码来进行反盗链,下面是一段防盗链的 PHP 代码。

<?php
$ADMIN&#91;defaulturl&#93; = "https://www.xiariboke.net/404.htm";//盗链返回的地址
$okaysites = array("https://www.xiariboke.net/","http://xiariboke.net"); //白名单
$ADMIN&#91;url_1&#93; = "https://www.xiariboke.net/download/";//下载地点1
$ADMIN&#91;url_2&#93; = "";//下载地点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&#91;$theu&#93; AND $yes == 1) {
header("Location: $ADMIN&#91;$theu&#93;/$file");
} else {
header("Location: $ADMIN&#91;defaulturl&#93;");
}
} else {
header("Location: $ADMIN&#91;defaulturl&#93;");
}?>

使用方法:将上述代码保存为dao4.php, 比如测试用的validatecode.rar在站点http://xiariboke.net/download里面, 则用以下代码表示下载连接. 文件名?site=1&file=文件 例如以下URL.复制到你的站点下试试 http://www.abc/dao4.php?site=1&file=validatecode.rar 以上代码测试可用,这里给出了一个实例,可以自行修改一下即可应用到站点中,对于图片盗链、音频盗链、视频盗链、文件盗链均实用。

标签:

12 条留言  访客:12 条  博主:0 条

  1. 培训

    哇哇哇,我把您的博客收藏了,对于一个初级php程序员来说,我很兴奋啊

  2. 哈啦

    挺实用的东东呢

  3. 从良未遂

    我现在把图片都放在dropbox里了,不过,我的图片基本不会有人盗的:都是个人照片

  4. 载体质粒

    这个比较实用,我的站正好是php站…

  5. mcpurses

    用Opera chrome很容易就找到原始链接

  6. 社新社

    夏日怎么不挂百度的广告?你这么好的站点,百度肯定通过的。有荐的100元有点难赚呢。不是淘宝的地址,点算有荐算不算帐的?

    • smiling

      没有备案百度不好通过呀。

  7. 社新社

    主要还是图片的盗链,视频和音频的话,小站长一般都把数据放优酷这样的站了,还希望别人转发。

  8. 泽敏SEO博客

    嗯,必须防盗链啊

  9. 李明

    防盗链也可減少主机流量损耗。

  10. 免费部落

    也只能用来防君子罢了!人家真要的话,防不了!

  11. Louis Han

    下载和图片大户必须防盗链啊

评论已关闭!