查看“防止盗链”的源代码
←
防止盗链
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
<big>防止盗链</big> === 请求来源验证 === 使用 HTTP-REFERER 验证可以取到申请访问的来源(直接输入地址是空)。 // 来源验证 $s_from = $_SERVER["HTTP_REFERER"]; $s_from = explode("/",$s_from)[2]; $flag = true; if (strstr($s_from, "mwbbs.")) $flag = false; if ($flag) { echo "This resource can only be used in mwbbs.tk"; return; } 例外:不过,HTTP_REFERER 是发送端请求包过来的数据,完全可以伪造,如: 在Privoxy的default.action中添加两行:<sup>[1]</sup> <nowiki>{+hide-referrer{forge}}</nowiki> .album.sina.com.cn '''又:既然外链可以伪造,那么网站内部完全可以指定一个特殊的字符串作为验证,比如网站是 mwbbs.tk,可以指定是 mwbbs-safe.tk,这样外链至多可以伪造已知的名称 mwbbs.tk,而无从知晓指定的特殊字符串。''' === 动态目录或文件名 === // md5: Prefix+yyyymmdd $d = 'Prefix'.date("Ymd"); $d5 = md5($d); echo '<meta http-equiv="refresh" content="0;url=/res/'.$d5.'/'.$p.'/'.$f.'">'; 上述 md5 的 hash,可以在日期基础上,增加固定特殊字符串,也就是所谓的加盐(salt)。 === 记录访问 IP,超过阈值暂停服务 === $s_ip_client = $_SERVER['REMOTE_ADDR']; === 参考 === # [https://cloud.tencent.com/developer/article/1804226 HTTP-REFERER伪造方法] # [https://blog.csdn.net/yuyingting5/article/details/76124529 8种网站防止盗链的方法] # [https://zhuanlan.zhihu.com/p/362650878 防盗链的原理以及实现] [[分类:Develop]] [[分类:Php]] [[分类:Web]]
返回
防止盗链
。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
目录
文章分类
侧边栏
帮助
工具
链入页面
相关更改
特殊页面
页面信息