首页 / PHP / 一个下载地址防盗的判断大牛进来看下!
一个下载地址防盗的判断大牛进来看下!
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了一个下载地址防盗的判断大牛进来看下!,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2111字,纯文字阅读大概需要4分钟。
内容图文
![一个下载地址防盗的判断大牛进来看下!](/upload/InfoBanner/zyjiaocheng/195/c34308628a57488b8ad01a5854f73173.jpg)
主站的download.php 为下载页面
子站的down.php为下载链接
必须通过download.php的下载点击链接才能下载
为了防止用户直接访问 子站/down.php?fileid=1能下载到该文件 做了下面的判断
download.php 增加一个哈希值
$hash = strtoupper(md5('downloadkey'.date('ymdh')));
down.php 也增加一个哈希值
$hash2 = strtoupper(md5('downloadkey'.date('ymdh')));
down.php判断
if($hash<>$hash2){ header("Content-Type: text/html; charset=utf-8"); echo '文件ID: '.$file_id.'
'; echo '['.$file_name.'] 文件地址已过期,请返回下载地址重新下载。
如果仍然出现此问题,请联系管理员
'; if($pd_gid==1){ echo '
---------- 以下内容 管理员可见 ----------
'; echo '文件HASH:'.$hash.'
'; echo '文件HASH2:'.$hash2.'
'; }
当时这样会有一个问题 就是当用户在20:59:59''的时候访问的下载页面,然后点击下载了
但是点击之后时间是21:00:01了,这样就造成了哈希值不一样,然后就不能下载,要返回重新下载一下就可以
如何解决呢。。
回复讨论(解决方案)
怎么木有人呢!
上面的是用时间来生成哈希值的 还有其他方法能防止吗
生成的 $hash 宜通过 cookie 传递并设有不太长的有效期,同时保存于 session 中
检查时不重新生成,而只检查 cookie 中是否有,并且与 session 中的对比
就同校验码一样
生成的 $hash 宜通过 cookie 传递并设有不太长的有效期,同时保存于 session 中
检查时不重新生成,而只检查 cookie 中是否有,并且与 session 中的对比
就同校验码一样
找到个简单点的方法
if(strpos($_SERVER['HTTP_REFERER'],'http://www.domain.com') == 0)
通过判断来路地址判断 不知道是否可行
生成的 $hash 宜通过 cookie 传递并设有不太长的有效期,同时保存于 session 中
检查时不重新生成,而只检查 cookie 中是否有,并且与 session 中的对比
就同校验码一样
找到个简单点的方法
if(strpos($_SERVER['HTTP_REFERER'],'http://www.domain.com') == 0)
通过判断来路地址判断 不知道是否可行
这个可以伪造
HTTP_REFERER 是可以伪造的
你可以参考下basic认证。
反过来,模拟浏览器也是一个课题。所以这是个道高一尺魔高一丈的问题。防盗只能防止正常的盗链,对于使用程序模拟浏览网页的话没法绝对防止。
所以建议防君子不防小人,使用referer防盗链。
内容总结
以上是互联网集市为您收集整理的一个下载地址防盗的判断大牛进来看下!全部内容,希望文章能够帮你解决一个下载地址防盗的判断大牛进来看下!所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。