Web.config

<httpModules>
<!–Url重写–>
<add type=”UrlRewriter.RewriterHttpModule, UrlRewriter” name=”UrlRewriter”/>
<!–防类似DDOS攻击–>
<add type=”UrlRewriter.DDosAttackModule, UrlRewriter” name=”DDosAttackModule”/>
</httpModules>

using System;
usingSystem.Web;
usingSystem.Collections.Generic;
usingSystem.Collections.Specialized;
usingSystem.Timers;namespace UrlRewriter
{/// <summary>/// 阻止攻击IP地址的回应/// </summary>public class DosAttackModule : IHttpModule{void IHttpModule.Dispose() { }void IHttpModule.Init(HttpApplication context){context.BeginRequest += new EventHandler(context_BeginRequest);}private static Dictionary<string, short> _IpAdresses = new Dictionary<string, short>();private static Stack<string> _Banned = new Stack<string>();private staticTimer_Timer = CreateTimer();private staticTimer_BannedTimer = CreateBanningTimer();private const int BANNED_REQUESTS = 1; //规定时间内访问的最大次数private const int REDUCTION_INTERVAL = 1000; // 1 秒(检查访问次数的时间段)private const int RELEASE_INTERVAL = 5 * 60 * 1000; // 5 分钟(清除一个禁止IP的时间段)private void context_BeginRequest(object sender, EventArgs e){string ip = HttpContext.Current.Request.UserHostAddress;if (_Banned.Contains(ip)){HttpContext.Current.Response.StatusCode = 403;HttpContext.Current.Response.End();}CheckIpAddress(ip);}/// <summary>/// 检查访问IP/// </summary>private static void CheckIpAddress(string ip){if (!_IpAdresses.ContainsKey(ip)) //如果没有当前访问IP的记录就将访问次数设为1{_IpAdresses[ip] = 1;}else if (_IpAdresses[ip] == BANNED_REQUESTS) //如果当前IP访问次数等于规定时间段的最大访问次数就拉于“黑名单”{_Banned.Push(ip);_IpAdresses.Remove(ip);}else //正常访问就加次数 1{_IpAdresses[ip]++;}}#region Timers/// <summary>/// 创建计时器,从_IpAddress减去一个请求。/// </summary>private staticTimerCreateTimer(){Timertimer = GetTimer(REDUCTION_INTERVAL);timer.Elapsed += new ElapsedEventHandler(TimerElapsed);return timer;}/// <summary>/// 创建定时器,消除一个禁止的IP地址/// </summary>/// <returns></returns>private staticTimerCreateBanningTimer(){Timertimer = GetTimer(RELEASE_INTERVAL);timer.Elapsed += delegate { _Banned.Pop(); }; //消除一个禁止IPreturn timer;}/// <summary>/// 创建一个时间器,并启动它/// </summary>/// <param name="interval">以毫秒为单位的时间间隔</param>private staticTimerGetTimer(int interval){Timer timer = new Timer();timer.Interval = interval;timer.Start();return timer;}/// <summary>/// 减去从集合中的每个IP地址的请求/// </summary>private static void TimerElapsed(object sender, ElapsedEventArgs e){foreach (string key in _IpAdresses.Keys){_IpAdresses[key]--;if (_IpAdresses[key] == 0)_IpAdresses.Remove(key);}}#endregion}
}

http://blog.wuaiwei.com/2011/04/02/asp-neté²ç±»ä¼¼ddosæ»å»ä»£ç /#more-118

转载于:https://www.cnblogs.com/jamin/archive/2011/04/11/2012254.html

asp.net防类似DDOS攻击(CC攻击)代码相关推荐

  1. 游戏盾无限防御DDOS和CC攻击

    游戏很容易招到黑客攻击,尤其是对于一些比较出名的平台,风险就更高一些.究竟为什么黑客这么喜欢攻击地方性游戏呢? 经过许多被攻击的案例显示,黑客之所以会选择攻击棋牌游戏平台是以下原因: /1.盗卖游戏币 ...

  2. 无法访问windows安装服务_香港香港服务器被DDOS和CC攻击

    香港香港服务器被DDOS和CC攻击的解决方案CC攻击原理:攻击者控制某些主机不停地发大量数据包给对方服务器造成服务器资源耗尽,一直到宕机崩溃.CC主要是用来攻击页面的,每个人都有这样的体验:当一个网页 ...

  3. 棋牌游戏一上线就被DDOS和CC攻击怎么解决?

    近年来,随着棋牌游戏行业的发展壮大,市场竞争变得越来越激烈.与此同时,一些地方性的棋牌游戏在运营时也存在很多潜在的风险,需要时刻提防黑客的攻击入侵,以保证游戏平台顺利运行.那么在实际的棋牌游戏运营过程 ...

  4. BGP高防IP如何防DDos和cc攻击?原理是什么?

    高防服务器又称为BGP高防ip,无论你的业务在哪里,都可以使用DDos及cc防护.如果业务不在,只需把需要防护的设备绑定高防即可防护,无需任何配置. 一.DDoS攻击原理 是目前互联网中最常见的网络攻 ...

  5. 腾讯云高防服务器 腾讯云BGP高防IP是如何防DDos和cc攻击的?

    腾讯云高防服务器又称为腾讯云BGP高防ip,无论你的业务是否在腾讯云,都可以使用腾讯云提供的DDos及cc防护.如果 业务不在腾讯云,只需把需要防护的设备绑定腾讯云高防即可防护,无需任何配置,更详细功 ...

  6. 阿里云盾技术强在哪里?轻松防御DDoS、CC攻击

    阿里云安全核心产品:云盾 云盾是阿里巴巴集团多年来安全技术研究积累的成果,结合阿里云云计算平台强大的数据分析能力,为中小网站提供如安全漏洞检测.网页木马检测,以及面向云服务器用户提供的主机入侵检测.防 ...

  7. 360cdn能挡住cc攻击_云防CDN是网页CC攻击的克星?cdn集群防御

    关于CDN,相信很多做网站运营的站长都是有所了解的,目前小蚁云安全也是有做cdn服务这块的产品,小蚁云安全最开始的防御系列产品主打的就是云防CDN,使用过小蚁云安全云防CDN的用户都是赞不绝口的.小蚁 ...

  8. ddos和cc攻击的区别,防护!!

    什么是DDoS攻击? DDoS攻击就是分布式的拒绝服务攻击,DDoS攻击手段是在传统的DoS攻击基础之上产生的一类攻击方式.单一的DoS攻击一般是采用一对一方式的,随着计算机与网络技术的发展,DoS攻 ...

  9. 阿里云盾技术强在哪?轻松防御ddos,cc攻击

    阿里云安全核心产品:云盾 云盾是阿里巴巴集团多年来安全技术研究积累的成果,结合阿里云云计算平台强大的数据分析能力,为中小网站提供如安全漏洞检测.网页木马检测,以及面向云服务器用户提供的主机入侵检测.防 ...

最新文章

  1. python格式化字符串_Python的3种字符串格式化方法,哪种你最喜欢?
  2. web 平台搭建-LNMP-源码包(CentOS-7)
  3. linuex查看繁忙_如何用九条命令在一分钟内检查Linux服务器性能?
  4. 解决jenkins 使用ssh插件执行脚本,导致一直处于构建中无法停止
  5. [shell问答录]:命令、进程、子shell...
  6. 【AI算法模型评测】2 如何评价多标签分类模型的好坏?
  7. Android Graphviz 安装
  8. LeetCode 53.最大子序和(动态规划)
  9. 【一周学术热点】预训练模型,文本生成,模型蒸馏
  10. C语言-数组练习题(附答案)
  11. 全民战“疫”,支付宝智能语音机器人到岗就位
  12. Excel函数与公式
  13. Vue刷新页面重新加载
  14. 如何建立Multi-Step(多步预测)的LSTM时间序列模型(以对家庭用电预测为例)
  15. Android Studio新手–下载安装配置–零基础入门–基本使用–调试技能–构建项目基础–使用AS应对常规应用开发
  16. C#中使用OracleTransaction
  17. Cpp环境【POJ3069】【Vijos2995】 萨鲁曼的大军 Saruman's Army
  18. 故宫景点功课17:内廷西路(中)
  19. 【云原生 • DevOps】一文掌握容器管理工具 Rancher
  20. 清除Windows安全中心保护历史记录方法

热门文章

  1. JD商家后台管理的细节
  2. OpenSuSe使用相关
  3. 对于SAP的月结相关流程介绍
  4. 【bzoj2006】【NOI2015】超级钢琴
  5. C# ref与out关键字解析
  6. with 关键字实现递归查询
  7. Java多线程 - 线程组
  8. nginx在linux为何效率高
  9. SpringBoot依赖注入
  10. android data分区(标准)