cc攻击是ddos攻击的一种,ddos cc防御
网页配置
超文本传送协议(Hyper Text Transport Protocol的缩写)模块
!网址重写
add type="UrlRewriter .RewriterHttpModule,URL rewriter " name=" URL rewriter "/
!防类似军械服务局副局长军火服务司副司长攻击
add type="UrlRewriter .DDosAttackModule,URL重写器" name=" DDosAttackModule "/
/http模块
代码:
?[复制到剪贴板]查看代码爪哇岛
使用系统;
使用系统网页。
使用系统。集合。泛型;
使用系统。收藏。专门化;
使用系统。计时器;
命名空间UrlRewriter
///摘要
///阻止攻击互联网协议(互联网协议)地址的回应
////摘要
公共类DosAttackModule : IHttpModule
无效的IHttpModule .Dispose() { }
无效的IHttpModule .初始化(http应用程序上下文)
语境begin请求=new EventHandler(context _ begin请求);
私有静态字典字符串,short _ IpAdresses=新字典字符串,short();
私有静态堆栈string _ Banned=新堆栈字符串();
私有静态Timer _ Timer=创建计时器();
私有静态Timer _ banned Timer=CreateBanningTimer();
private const int BANNED _ REQUESTS=1;//规定时间内访问的最大次数
私有const int REDUCTION _ INTERVAL=1000;//1 秒(检查访问次数的时间段)
私有const int RELEASE _ INTERVAL=5 * 60 * 1000;//5 分钟(清除一个禁止互联网协议(互联网协议)的时间段)
私有void context_BeginRequest(对象发送方,EventArgs e)
string ip=HttpContext .当前。请求。userhostaddress
如果(_禁止。包含(ip))
HttpContext .当前。回应。状态码=403;
HttpContext .当前。回应。end();
检查IP地址(IP);
///摘要
///检查访问互联网协议(互联网协议)
////摘要
私有静态void CheckIpAddress(字符串ip)
如果(!_地址ContainsKey(ip)) //如果没有当前访问互联网协议(互联网协议)的记录就将访问次数设为一
_ IP addresses[IP]=1;
else if(_ IP addresses[IP]==BANNED _ REQUESTS)//如果当前互联网协议(互联网协议)访问次数等于规定时间段的最大访问次数就拉于"黑名单"
_禁止。推送(IP);
_地址。移除(IP);
else //正常访问就加次数一
_ IP地址[IP];
#区域计时器
///摘要
///创建计时器,从_地址减去一个请求。
////摘要
私有静态计时器CreateTimer()
timer timer=GetTimer(REDUCTION _ INTERVAL);
计时器ElapsedEventHandler(重新创建的时间);
返回计时器;
///摘要
///创建定时器,消除一个禁止的互联网协议(互联网协议)地址
////摘要
///返回/返回
私有静态计时器CreateBanningTimer()
timer timer=GetTimer(RELEASE _ INTERVAL);
计时器Elapsed=delegate { _Banned .pop();};//消除一个禁止互联网协议(互联网协议)
返回计时器;
///摘要
///创建一个时间器,并启动它
////摘要
///param name=interval 以毫秒为单位的时间间隔/param
私有静态定时器GetTimer(整数区间)
Timer Timer=new Timer();
计时器。区间=区间;
计时器. start();
返回计时器;
///摘要
///减去从集合中的每个互联网协议(互联网协议)地址的请求
////摘要
私有静态空的时间重复(对象发送方,ElapsedEventArgs e)
foreach(字符串键in _ IpAdresses .按键)
_ IP地址[key]-;
if(_ I addresses[key]==0)
_地址。移除(键);
#结束区域
}