Thinkphp防止大量访问,造成网站压力大

该方法利用S缓存方法

//防止大量访问,造成服务器压力大
function noHacker() {
    $time = 5; //每多少秒
    $num = 30; //最多访问次数
    $lists = S("noHacker");
    $ip = getIp();
    $sid = session_id();
    $key = md5($ip.$sid);
    if (!$lists[$key]) {
        $lists[$key] = array('time' = >time(), "num" = >0, );
        S('noHacker', $lists);
    } else {
        $data = $lists[$key];
        if (time() > $data["time"] + $time) {
            $lists[$key] = array('time' = >time(), "num" = >0, );
            S('noHacker', $lists); //重置
        } else {
            if ($data['num'] >= $num) {
                exit("您访问过于频繁,请稍后在访问!");
            } else {
                $lists[$key] = array('time' = >time(), "num" = >$data['num'] + 1, );
                S('noHacker', $lists); //添加
            }
        }
    }
}
赞 (1)
分享到:更多 ()

评论 1

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. 万五哥来过牛逼回复