PHP防盗链的基本思想 防盗链的设置方法


Posted in PHP onSeptember 25, 2015

盗链是指服务提供商自己不提供服务的内容,通过技术手段绕过其它有利益的最终用户界面(如广告),直接在自己的网站上向最终用户提供其它服务提供商的服务内容,骗取最终用户的浏览和点击率。受益者不提供资源或提供很少的资源,而真正的服务提供商却得不到任何的收益。做好防止盗链的工作,是每个网站开发者的重要工作。

做好防盗链工作能给网站服务器减少不少压力,这里我们分享一种php防盗链的实现方法:

一般的下载的步骤:查找->输出查找结果列表->进入软件详细页面->点击下载按钮->打开下载页面->点击下载,开始下载

我的方法就是在下载页面做文章

首先在网站的公共文件里定义一个$key=sdkfjwojf32413这相当于一个密钥一样

在下载页面生成一个随机数:$certcode = '84615354' (每次打开生成的都不一样)

然后用以上两个变量和软件的ID生成一个md5()加密串

然后生成软件的真实下载地址:file.php?id=5&codekey=ksfjwofsdkfsf

这里的id是软件的编号可以根据他从数据库找到软件地址 $codekey=md5($id.$certcode.$key)
然后把certcode保存到session里,

在file.php的参数里面得到的codekey和id再从公共文件里得到$key 再从session里得到$certcode

对codekey进么验证,看是否正确,如果不正确就退出,否则就进行如下操作

1、删除session(再次打开这个地址就无效了)

2、从数据库里读取软件地址,然后读取软件内容,并输出(用PHP的文件读取方法输出要下载的软件内容而不是直接把地址给他下载)

这样如果要下载,就必须打开你自己的下载页面,从你的下载页面打开地址才能进行下载,而且下载地址每次都不一样,因为生成的随机数不一样

别的地方就算连到你的下载地址,也是下载不了的。

拓展阅读(具体实现):

1.简单防盗链

$ADMIN[defaulturl] = "http://www.vvschool.cn/404.htm";//盗链返回的地址 
$okaysites = array("http://www.vvschool.cn/","http://www.siyizhu.com"); //白名单 
$ADMIN[url_1] = "http://www.vvschool.cn/temp/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]"); 
}?>

使用方法:将上述代码保存为dao4.php,比如我测试用的validatecode.rar在我的站点里面,则用以下代码表示下载连接.

文件名?site=1&file=文件

2.服务器防盗链

3.软件下载的防盗链方法

//放置下载软件的根目录相对于当前脚本目录的相对目录 
$fileRelPath = "../../software"; 
//例外允许连接的网址,注意:自身域名不需要填入,设定为肯定可以下载, 
// 空字符串("")表示直接输入网址下载的情况 
$excludeReferArr = array("www.wreny.com", "wreny.com"); 
chdir($fileRelPath); 
$fileRootPath = getcwd() ."/"; 
$filePath=$HTTP_GET_VARS["file"]; 
$url=parse_url($_SERVER["HTTP_REFERER"]); 
if($url[host]!=$_SERVER["HTTP_HOST"] && !in_array($referHost, $excludeReferArr)){ 
?>

其实,反盗链方式也有不少, 这里只列出一个大概思想作为参考:

(1)IIS 反盗链, 利用ISAPI_Rewrite,可作为Windows下反盗链的一个解决方案;

(2) 图片反盗链,在图片中加入水印,虽然盗链者可以达到目的,但是却也在为自己的网站做宣传。

以上就是PHP防盗链的基本思想和设置方法,希望对大家的学习有所帮助。

PHP 相关文章推荐
PHP环境搭建最新方法
Sep 05 PHP
PHP autoload与spl_autoload自动加载机制的深入理解
Jun 05 PHP
destoon安全设置中需要设置可写权限的目录及文件
Jun 21 PHP
PHP判断是否为空的几个函数对比
Apr 21 PHP
php截取视频指定帧为图片
May 16 PHP
PHP面试常用算法(推荐)
Jul 22 PHP
PHP遍历目录文件的常用方法小结
Feb 03 PHP
PHP简单获取随机数的常用方法小结
Jun 07 PHP
YII2框架中excel表格导出的方法详解
Jul 21 PHP
Laravel中的Auth模块详解
Aug 17 PHP
php使用lua+redis实现限流,计数器模式,令牌桶模式
Apr 04 PHP
PHP Ajax跨域问题解决方案代码实例
Aug 01 PHP
十个PHP高级应用技巧果断收藏
Sep 25 #PHP
PHP中的Session对象如何使用
Sep 25 #PHP
如何解决PHP无法实现多线程的问题
Sep 25 #PHP
PHP网站建设的流程与步骤分享
Sep 25 #PHP
ThinkPHP进程计数类Process用法实例详解
Sep 25 #PHP
php实现的Curl封装类Curl.class.php用法实例分析
Sep 25 #PHP
php实现的微信红包算法分析(非官方)
Sep 25 #PHP
You might like
模仿OSO的论坛(三)
2006/10/09 PHP
关于UEditor编辑器远程图片上传失败的解决办法
2012/08/31 PHP
php 截取utf-8格式的字符串实例代码
2016/10/30 PHP
PHP实现的登录页面信息提示功能示例
2017/07/24 PHP
详解关于php的xdebug配置(编辑器vscode)
2019/01/29 PHP
js中cookie的使用详细分析
2008/05/28 Javascript
javascript 构造函数强制调用经验总结
2012/12/02 Javascript
JS 对输入框进行限制(常用的都有)
2013/07/30 Javascript
jQuery实现鼠标滚轮动态改变样式或效果
2015/01/05 Javascript
JQuery中节点遍历方法实例
2015/05/18 Javascript
angular.bind使用心得
2015/10/26 Javascript
探析浏览器执行JavaScript脚本加载与代码执行顺序
2016/01/12 Javascript
jQuery中animate()的使用方法及解决$(”body“).animate({“scrollTop”:top})不被Firefox支持的问题
2017/04/04 jQuery
ionic3+Angular4实现接口请求及本地json文件读取示例
2017/10/11 Javascript
详解vue 不同环境配置不同的打包命令
2019/04/07 Javascript
深入学习js函数的隐式参数 arguments 和 this
2019/06/24 Javascript
js贪心算法 钱币找零问题代码实例
2019/09/11 Javascript
layui时间控件选择时间范围的实现方法
2019/09/28 Javascript
vue组件库的在线主题编辑器的实现思路
2020/04/03 Javascript
[00:36]DOTA2风云人物相约完美“圣”典 12月17日不见不散
2016/11/30 DOTA
[01:20:38]完美世界DOTA2联赛 GXR vs IO 第一场 11.07
2020/11/09 DOTA
浅谈Python反射 & 单例模式
2019/03/21 Python
python3+PyQt5 使用三种不同的简便项窗口部件显示数据的方法
2019/06/17 Python
Python中*args和**kwargs的区别详解
2019/09/17 Python
Python字符串格式化输出代码实例
2019/11/22 Python
Python使用urlretrieve实现直接远程下载图片的示例代码
2020/08/17 Python
python list等分并从等分的子集中随机选取一个数
2020/11/16 Python
CSS3简单实现照片墙
2014/12/12 HTML / CSS
英国助听器购物网站:Hearing Direct
2018/08/21 全球购物
学生会主席就职演讲稿
2014/01/14 职场文书
求职信的最佳写作思路
2014/02/01 职场文书
初中生自我鉴定
2014/02/04 职场文书
中学生运动会口号
2014/06/07 职场文书
2014年电话客服工作总结
2014/12/09 职场文书
关于开学的感想
2015/08/10 职场文书
js实现上传图片到服务器
2021/04/11 Javascript