防止盗链:修订间差异
跳到导航
跳到搜索
(创建页面,内容为“<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 是发送端请求包…”) |
无编辑摘要 |
||
第43行: | 第43行: | ||
[[分类:Php]] | [[分类:Php]] | ||
[[分类:Web]] | [[分类:Web]] | ||
2023年1月5日 (四) 10:24的版本
防止盗链
请求来源验证
使用 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中添加两行:[1]
{+hide-referrer{forge}}
.album.sina.com.cn
动态目录或文件名
// md5: Prefix+yyyymmdd $d = 'Prefix'.date("Ymd"); $d5 = md5($d); echo '<meta http-equiv="refresh" content="0;url=/res/'.$d5.'/'.$p.'/'.$f.'">';
记录访问 IP,超过阈值暂停服务
$s_ip_client = $_SERVER['REMOTE_ADDR'];