PHPDisk网盘官方论坛

 找回密码
 立即注册
网盘分享动态:
E-Core企业网盘系统v4.0试用版(2024年)官方论坛版主招募啦~期待您的加入PHPDisk 7.0 V-Core系列发布[下载]
招聘团队,开发phpdisk项目【有兴趣即可加入】phpdisk新版本 Windows客户端软件详尽~PHPDisk 模板制作教程
PHPDISK网盘专用探针 V2.1 PHPDisk插件开发教程PHPDisk交流Q群,加入->
查看: 2715|回复: 6

PHPDISK 网赚版下载地址增强 免费发放

[复制链接]

已分享文件:0个

网盘今日赚:积分

发表于 2013-4-12 03:52:27 | 显示全部楼层 |阅读模式
经过研究发现PHPDISK的文件地址其实是可以绕过直接下载的,这样对用户不好,对站长也不好
当然有需要的自己研究下,没需要的直接跳过吧

这里增加一个验证机制,自己不会的可以联系我

现在发教程

在做以下步骤前请先备份你们的文件

第一步:在主服根目录下的download.php

找到
  1. $hash = strtoupper(md5($file['file_id'].'_'.$file['file_size'].'_'.$file['file_store_path'].$file['file_real_name']));
复制代码
这一句,其实貌似along当初写的时候准备这样做的,但是不知道为什么后来没加?

替换成
  1. $hash = strtoupper(md5('thisiskey'.date('ymdh')));
复制代码
代码里面的thisiskey 可以换成你自己的。

然后保存上传到服务器。

第二步:在子服目录下的dl.php

找到
  1. parse_str(pd_encode($str,'DECODE'));
复制代码
这一句,然后在这句下面添加一段代码
  1. $hash2 = strtoupper(md5('thisiskey'.date('ymdh')));
复制代码
注意!!这里的thisiskey要和上面修改的文件里的一样!切记!

再往下看,找到
  1. }else{
复制代码
在这一行前面添加一段代码
  1. }elseif($hash<>$hash2){
  2.         header("Content-Type: text/html; charset=utf-8");
  3.         echo '文件ID: '.$file_id.'<br>';
  4.         echo '['.$file_name.'] 文件地址已过期,请返回下载地址重新下载。<br><br>如果仍然出现此问题,请联系管理员<br><br>';
  5.         echo '联系方式:'.$settings[contact_us];
  6.         if($pd_gid==1){
  7.                 echo '<br><br>---------- 以下内容 管理员可见 ---------- <br>';
  8.                 echo '文件HASH:<font color=blue>'.$hash.'</font><br><br><br>';
  9.                 echo '文件HASH2:<font color=blue>'.$hash2.'</font><br>';
  10.         }
复制代码
然后保存上传,这样就可以了!

这样其实还是有点小BUG的

就是当用户在20:59:59''的时候访问的下载页面,然后点击下载了

但是点击之后时间是21:00:01了,这样就造成了哈希值不一样,然后就不能下载,要返回重新下载一下就可以

要解决的可以找我修改,要收点小钱0.0~

可乐云 网盘
http://www.colafile.com

Autor :临客&Lokym
2013-04-11 20:52

评分

参与人数 1威望 +10 收起 理由
gedebin + 10 很给力!

查看全部评分

已分享文件:0个

网盘今日赚:积分

发表于 2013-4-14 20:33:47 | 显示全部楼层
顶你      技术大牛  哈哈

已分享文件:0个

网盘今日赚:积分

 楼主| 发表于 2013-4-14 21:22:04 | 显示全部楼层
小雄 发表于 2013-4-14 20:33
顶你      技术大牛  哈哈

哪有along牛,写出这么庞大的程序的人~崇拜啊

已分享文件:0个

网盘今日赚:积分

发表于 2013-11-6 16:55:55 | 显示全部楼层
strpos($_SERVER['HTTP_REFERER'],'http://www.web.com') ==0
直接在dl.php上这样判断也行吧。。

已分享文件:0个

网盘今日赚:积分

 楼主| 发表于 2013-11-9 00:50:59 | 显示全部楼层
GanS 发表于 2013-11-6 16:55
strpos($_SERVER['HTTP_REFERER'],'http://www.web.com') ==0
直接在dl.php上这样判断也行吧。。 ...

可以,反正就是一个思路,会开发的怎么做都可以,还可以用session来判断的啊,各种= =

已分享文件:0个

网盘今日赚:积分

发表于 2013-11-19 10:36:56 | 显示全部楼层
GanS 发表于 2013-11-6 16:55
strpos($_SERVER['HTTP_REFERER'],'http://www.web.com') ==0
直接在dl.php上这样判断也行吧。。 ...

+1  哈哈哈   思路和我一模一样!  我网盘也是  盗用链接 特别严重!   换个月就加上了这句代码....

点评

这样 简单防盗还可以,但是 HTTP_REFERER 是可以伪造的。 所以最好还是直接在输出下载地址上面做手脚。 输出的下载地址加上有效期,多长时间有效,过期后失效  详情 回复 发表于 2013-11-19 12:34

已分享文件:0个

网盘今日赚:积分

发表于 2013-11-19 12:34:43 | 显示全部楼层
二逼年代、何来 发表于 2013-11-19 10:36
+1  哈哈哈   思路和我一模一样!  我网盘也是  盗用链接 特别严重!   换个月就加上了这句代码.... ...

这样 简单防盗还可以,但是 HTTP_REFERER 是可以伪造的。  所以最好还是直接在输出下载地址上面做手脚。 输出的下载地址加上有效期,多长时间有效,过期后失效
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /1 下一条

小黑屋|Archiver|手机版|PHPDisk官方论坛 ( 粤ICP备10073657号 )

GMT+8, 2024-5-4 20:53 , Processed in 0.064002 second(s), 34 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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