• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

php 搞代码 4年前 (2022-01-24) 16次浏览 已收录 0个评论

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

主站的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了,这样就造成了哈希值不一样,然后就不能下载,要返回重新下载一下就可以

如何解决呢。。

发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址