分享PHP防刷新代码从此网站不再被F5刷死

admin 2024-03-05 303 阅读 0评论

防刷新代码一:

session_start();
$allow_sep = "60";
if (isset($_SESSION["post_sep"])) {
   if (time() - $_SESSION["post_sep"] < $allow_sep) {
       exit("孩子你能消停一下么?刷新请60秒后继续!");
   } else {
       $_SESSION["post_sep"] = time();
   }
} else {
   $_SESSION["post_sep"] = time();
}


防刷新代码二:

//代理IP直接退出
empty($_SERVER['HTTP_VIA']) or exit('Access Denied');
//防止快速刷新,在设置的时间内到达设置次数就跳转的设定的页面
session_start();
$seconds = '3'; //时间段[]
$refresh = '3'; //刷新次数
//设置监控变量
$cur_time = time();
if (isset($_SESSION['last_time'])) {
   $_SESSION['refresh_times'] += 1;
} else {
   $_SESSION['refresh_times'] = 1;
   $_SESSION['last_time'] = $cur_time;
}
//处理监控结果
if ($cur_time - $_SESSION['last_time'] < $seconds) {
   if ($_SESSION['refresh_times'] >= $refresh) {
       //跳转至攻击者服务器地址
       header(sprintf('Location:%s', 'http://127.0.0.1'));
       exit('Access Denied');
   }
} else {
   $_SESSION['refresh_times'] = 0;
   $_SESSION['last_time'] = $cur_time;
}


因为上面的代码是基于 session的验证,假如你在2秒内刷新了页面,那么它会执行exit() 函数输出一条消息,并退出当前脚本。于是就不会加载下面的内容,所以这段代码最好放在header中,先让代码执行,再加载其他的东西。 如果把代码放在了footer里,结果整个页面都加载了只在最后一行输出了“请不要频繁刷新”,放在header中,效果比较好。其实最好的方法是新建一个FCC.php文件,然后在header调用。


js屏蔽F5的方法

.= (e){
        e = .|| ekeycode = e.|| e.( keycode = ){
            (.){{e.= }(e){}
                e.= }{e.()}
        }}

发表评论

快捷回复: 表情:
Addoil Applause Badlaugh Bomb Coffee Fabulous Facepalm Feces Frown Heyha Insidious KeepFighting NoProb PigHead Shocked Sinistersmile Slap Social Sweat Tolaugh Watermelon Witty Wow Yeah Yellowdog
提交
评论列表 (有 0 条评论, 303人围观)

最近发表

热门文章

最新留言

热门推荐

标签列表