时间:2021-07-01 10:21:17 帮助过:12人阅读
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.'
'; }
怎么木有人呢!
上面的是用时间来生成哈希值的 还有其他方法能防止吗
生成的 $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防盗链。