就在前几天,我自己的主机管理系统(也就是源站)让人给恶意CC攻击导致登录页面开不了,还好我开了几个公司的cdn没什么大事,但是被人恶意攻击网站是在是太不爽了,于是上网找了个防止连续快速刷新网页的代码,有php版本的和asp版本的,这个php代码不止可以防CC攻击,还可以指定CC攻击者跳转地址 ,还可以防止各种东西只要加入header就可以使用了,废话不多说了,代码如下:
<?php //代理IP直接退出 empty($_SERVER['HTTP_VIA']) or exit('Access Denied'); //防止快速刷新 session_start(); $seconds = '3'; //时间段[秒] $refresh = '5'; //刷新次数 //设置监控变量 $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; } ?>
我在这提供一个攻击者跳转地址的模板,自己保存下来修改就可以用了,地址:https://www.ljy2345.com/404/
下面这个是asp版本的代码:(这个木有跳转功能)
Sub PreventRefresh() Dim RefreshTime,isRefresh RefreshTime = 10 ’防止刷新时间,单位(秒) isRefresh = 1 ’是否使用防刷新功能,0=否,1=是 If isRefresh = 1 Then If (Not IsEmpty(Session("RefreshTime"))) And RefreshTime > 0 Then If DateDiff("s", Session("RefreshTime"), Now()) < RefreshTime Then Response.Write "<META http-equiv=Content-Type content=text/html; chaRset=gb2312><meta HTTP-EQUIV=REFRESH CONTENT="&RefreshTime&"><br> 本页面起用了防刷新机制,请不要在"&RefreshTime&"秒内连续刷新本页面 <BR>正在打开页面,请稍后……" Response.End Else Session("RefreshTime") = Now() End If Else Session("RefreshTime") = Now() End If End If End Sub
赞赏
历史上的文章
- 2020: 如何将logo添加到 plyr 播放器( 0)
除特别注明外,本站所有文章均为原创,转载请注明出处来自https://www.ljy2345.com/2015/08/php%e3%80%81asp%e5%ae%9e%e7%8e%b0%e9%98%b2%e6%ad%a2cc%e6%94%bb%e5%87%bb%e5%92%8c%e5%bf%ab%e9%80%9f%e5%88%b7%e6%96%b0%e7%bd%91%e9%a1%b5/
Comments | NOTHING