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

emlog教程 3年前 (2018) Mgo
0

不晓得大家有没有遇到过网站被暴力F5刷新刷死的?如果你曾经的确遇到过这样的问题,那么接下来的文章可能对你而言就是一片非常实用的好文了,骚包也是刚刚在流量互联网的时候无意中发现的这篇文章,现在把网站防F5刷新的代码分享给大家。

    防刷新代码一:

<?php 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();} ?>

    防刷新代码二:

<?php //代理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的方法

<script> document.onkeydown = function(e){ e = window.event || e; var keycode = e.keyCode || e.which; if( keycode = 116){ if(window.event){// ie try{e.keyCode = 0;}catch(e){} e.returnValue = false; }else{e.preventDefault();} }} </script>



版权声明:Mgo 发表于 2018-08-03 11:21:49。
转载请注明:分享PHP防刷新代码从此网站不再被F5刷死 | 站长聚集地

暂无评论

暂无评论...