Home >Backend Development >PHP Tutorial > 一个下载地址防盗的判断 大牛进来看下!该如何解决

一个下载地址防盗的判断 大牛进来看下!该如何解决

WBOY
WBOYOriginal
2016-06-13 12:32:48809browse

一个下载地址防盗的判断 大牛进来看下!
两个网站  一个主站 一个上传用的子站

主站的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判断

<br />
if($hash<>$hash2){<br />
        header("Content-Type: text/html; charset=utf-8");<br />
        echo '文件ID: '.$file_id.'<br>';<br />
        echo '['.$file_name.'] 文件地址已过期,请返回下载地址重新下载。<br><br>如果仍然出现此问题,请联系管理员<br><br>';<br />
        if($pd_gid==1){<br />
                echo '<br><br>---------- 以下内容 管理员可见 ---------- <br>';<br />
                echo '文件HASH:<font color=blue>'.$hash.'</font><br><br><br>';<br />
                echo '文件HASH2:<font color=blue>'.$hash2.'</font><br>';<br />
        }<br />


当时这样会有一个问题 就是当用户在20:59:59''的时候访问的下载页面,然后点击下载了

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

如何解决呢。。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn