其实小杰的树洞外链已经运行了快一年了,很早的时候就遇到过树洞外链被刷注册的事情,小杰我也没咋在意这件事情,直到上个月的树洞外链集体被刷时才知道这个漏洞是多么的可怕,小杰的树洞被刷了5G流量,有甚者被刷几万块钱进去,七牛可以来领房子了
今天小杰看到我们站长联盟群又发生被刷事件,这次想起写一个应对策略。
比较安全的方式就是给post文件加一个http验证,当然,代码是网上找的,该http验证代码适用于其他网站上。
加入以下代码到树洞外链的几个点,注册点,分享点等等,至于其他敏感点位都可以加,一次验证全站通过。
注册点文件路径:/includes/userAction.php
分享点文件路径:/includes/create_share.php
header("Content-type: text/html; charset=utf-8");
function validate($user, $pass) {
$users = ['admin'=>'admin0'];
if(isset($users[$user]) && $users[$user] === $pass) {
return true;
} else {
return false;
}
}
if(!validate(@$_SERVER['PHP_AUTH_USER'], @$_SERVER['PHP_AUTH_PW'])) {
http_response_code(401);
header('WWW-Authenticate:Basic realm="My website"');
echo '需要用户名和密码才能继续访问';
exit;
} else {
}
不会加的,看图,其中admin是账户,admin0是密码,自行修改
后续:经过周密的想了一下,该方法其实还有一点不方便,不方便用户使用,登录和注册都需要验证的话,树洞外链的方便性就体现不出来了,如果用户少,就可以多设置几个专属的验证密码发布下去,或者有技术的大佬可以想一下如何巧妙的修复这个漏洞。