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

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

做好防盗链工作能给网站服务器减少不少压力,这里我们分享一种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.简单防盗链

  1. $ADMIN[defaulturl] = "http://www.vvschool.cn/404.htm";//盗链返回的地址
  2. $okaysites = array("http://www.vvschool.cn/","http://www.siyizhu.com"); //白名单
  3. $ADMIN[url_1] = "http://www.vvschool.cn/temp/download/";//下载地点1
  4. $ADMIN[url_2] = "";//下载地点2,以此类推
  5. $reffer = $HTTP_REFERER;
  6. if($reffer) {
  7. $yes = 0;
  8. while(list($domain, $subarray) = each($okaysites)) {
  9. if (ereg($subarray,"$reffer")) {
  10. $yes = 1;
  11. }
  12. }
  13. $theu = "url"."_"."$site";
  14. if ($ADMIN[$theu] AND $yes == 1) {
  15. header("Location: $ADMIN[$theu]/$file");
  16. } else {
  17. header("Location: $ADMIN[defaulturl]");
  18. }
  19. } else {
  20. header("Location: $ADMIN[defaulturl]");
  21. }?>

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

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

2.服务器防盗链

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

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

其实,反盗链方式也有不少, 这里只列出一个大概思想作为参考:⑴ IIS 反盗链, 利用ISAPI_Rewrite,可作为Windows下反盗链的一个解决方案;⑵ 图片反盗链,在图片中加入水印,虽然盗链者可以达到目的,但是却也在为自己的网站做宣传。

http://developer.51cto.com/art/201105/265961.htm

时间: 2024-10-10 02:13:17

PHP做好防盗链的基本思想 防盗链的设置方法的相关文章

Objective-C 链式编程思想

链式编程思想 链式编程是什么 链式编程就是将调用多个方法用点语法连接起来,让代码更加简洁和可读性更高刚开始接触链式编程是Masonry,用起来真的非常爽 1 make.left.right.top.equalTo(self.view); 这样一句语句就调用了4个方法.left调用了left属性的get方法.right, .top调用了right和top方法.equalTo()调用了equalTo方法 这种写法极大简化了写约束的方式 原理 原理就是调用的属性的类型或者方法的返回类型为原调用属性的类

链式编程思想

接下来的部分摘自:最快让你上手之ReactiveCocoa基础篇 先简单介绍下目前咱们已知的编程思想. 1 面向过程:处理事情以过程为核心,一步一步的实现. 2 面向对象:万物皆对象 3 链式编程思想:是将多个操作(多行代码)通过点号(.)链接在一起成为一句代码,使代码可读性好.a(1).b(2).c(3) 链式编程特点:方法的返回值是block,block必须有返回值(本身对象),block参数(需要操作的值) 代表:Masonry框架. 4 响应式编程思想:不需要考虑调用顺序,只需要知道考虑

新手如何发网站外链,网站的外链如何发,发外链的方法集合

一和大家分享一下我是如何做反连接链的.一般做反连接我只追求两件事情.一.数量.二.稳定性.对于像我这样的新人和缺乏资源的人来讲能做的就是增加外链数量,做好外链的稳定性工作.所谓的稳定性就是发了的外链就要尽量让它别消失,这点群发软件就很难做到,特别是英文站.现在好多人认为的外链的相关性和外链的pr都很重要,其实我对这两点从来不在乎,原因 是因为对于一些商业热词,一般相关的网站多为同行竞争对手,所以想找相关性外链并不是很现实的,第二个大家认为高pr额外链很重要,这点我不否认,但是哪有那么多高质量的p

区块链三大方向:比特币,其他公有链和区块链联盟,以及私有链。

该行业可以分成了三大方向,分别是比特币,其他公有链和区块链联盟,以及私有链. 依照上述三个类别,我将对技术如何在 2017 年影响区块链行业做出一些预测,具体如下: 比特币:价格还会继续攀升 大约三年半之前,当 David Johnston 和我联合创立 BitAngels 公司的时候,那时的比特币行业是非常新奇的行业,很多传统投资人并不太了解.而我则经历了人生中最刺激的一场"过山车"事件--比特币在 2013 年的价格为 13 美元,之后火箭般蹿升到 233 美元,接着又断崖式跌倒

链式编程:泛型实现的扩展方法类

序言 本文分享一个用链式编程思想和泛型实现的扩展方法类,用于减少代码量,并提供更为清晰的业务逻辑代码表达. 概念 链式编程:将多个业务逻辑(方法)通过“.”(点号)串联起来的一种代码风格,形似链条,故称链式编程.核心思想在于每个方法均返回自身实例. 泛型:可以理解为是一个类的“篮子“”,只要符合约束的类均可以放置在该“篮子”里面. 扩展方法:向现有类添加方法. 根据泛型和扩展方法的特点,泛型+扩展方法实现了向所有符合约束的“类”添加方法,可减少重复代码量. (.Net语言提供了这么优雅的特性,刚

区块链技术开发 聊区块链+物联网场景应用

几乎在同一时期,区块链技术开发的诞生与物联网概念出现,但"遗憾"的是,二者直到最近一两年才"擦出火花",一方面,物联网几何级扩张后问题暴露得更加明显,亟待寻找解决方案,另一方面,区块链带来的全新思维方式也逐渐被主流商业群体所接受,空白的市场吸引了各行各业切入其中,抢时间成为了大家做区块链技术开发的共同目标. 从区块链技术开发的结构机制来看,去中心化的架构直接颠覆了物联网旧有的中心架构,不但大大减轻中心计算的压力,而且释放了物联网组织结构的更多可能,为创新提供了更多空

区块链技术开发 聊区块链技术开发应用场景概况

发展至今,区块链技术开发已经从单纯的技术探讨走向了应用落地的初步阶段.随着国内外已经出现大量企业或个体初创者切入其中.有些企业希望结合自身业务摸索出具有特色的应用场景,但更多的企业还处于不断探索和验证的阶段,区块链技术开发的应用空间仍然存在广阔市场. 实际上,要找到合适的区块链技术应用场景,还是要从区块链技术开发自身的特性进行分析.区块链技术开发在不引入第三方中介机构的前提下,可以提供去中心化.不可篡改.安全可靠等特性保证.因此,所有直接或间接依赖于第三方担保机构的活动,均可能从区块链技术中获益

深圳区块链商城开发,深圳区块链开发,深圳区块链商城开发技术

深圳区块链商城开发,深圳区块链开发,深圳区块链商城开发技术是当前主流的技术,那么,区块链到底是什么呢?深圳区块链商城开发,深圳区块链开发,深圳区块链商城开发技术又是什么呢? 狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一 种链式数据结构, 并以 密码学方式保证的不可篡改和不可伪造的分布式账本. 广义来讲,区块链技术是利用块链式数据结构来验证与存储数据.利用分布式节点共识算法来生成和更新 数据.利用密码学的方式保证数据传输和访问的安全.利用由自动化脚本代码组成的智能合约来编

html 音乐 QQ播放器 外链 代码 播放器 外链 代码

韩梦飞沙  韩亚飞  [email protected]  yue31313  han_meng_fei_sha QQ播放器 外链 代码 播放器 外链 代码 ======== 歌曲链接 QQ播放器 外链 代码 播放器 外链 代码 <EMBED src="音乐url" autostart="true" loop="true" width="80" height="20"> 在网易云音乐, 搜索一首