黑客攻击你的网站,会采取各种各样的手段,其中为了降低你网站的访问速度,甚至让你的服务器瘫痪,它会不断的刷新你的网站,或者模拟很多用户同一时间大量的访问你的网站,

这就是所谓的CC攻击,这就需要我们在程序里添加一些防CC攻击的策略代码,下面就来介绍一下自己最近写的一段代码,拿来供大家分享:

using System;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.IO; public partial class _Default : System.Web.UI.Page
{ string getIp = null; protected void Page_Load(object sender, EventArgs e)
{ if (!IsPostBack) { GetCC(); } } //放CC攻击
public void GetCC()
{ string FYCC_05 = ""; //'CCLog.txt存放的路径文件夹!需要手动创建!建议留空 //'如果输入,请在前面加上符号"/" int FYCC_18 = ; //'防刷新频繁CC攻击关闭与启动,1为启动0为关闭 int FYCC_17 = ; //'防刷新禁止IP功能关闭与启动,1为启动0为关闭 int FYCC_19 = ; //'每分钟刷新次数,将会出现提示 string FYCC_20 = "http://www.163.com"; //'被封IP后自动转入的页面,建议输入存放病毒的网址!!! int FYCC_21 = ; //'恶意刷新几次将禁止IP string realip = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];//获得代理ip string proxy = Request.ServerVariables["REMOTE_ADDR"];//获得普通ip // getIp = GetIP(); if (realip == null)
{ getIp = proxy; }
else
{ getIp = realip; } string path = Server.MapPath("~/"); if (!System.IO.File.Exists(path + "/CCLOG/CCLOG.txt")) { System.IO.File.CreateText(path + "/CCLOG/CCLOG.txt"); } StreamReader reader = new StreamReader(path + "/CCLOG/CCLOG.txt"); string readFile = reader.ReadToEnd(); reader.Close(); if (readFile.Contains(getIp))
{ Response.Write("您的IP" + getIp + "已经被禁止!如需要解封,请联系本站管理员')"); Response.End(); } if (Convert.ToInt32(Session["FYCC_01"]) > FYCC_19 && DateTime.Now.Minute != Convert.ToInt32(Session["FYCC_02"]))
{ Session["FYCC_01"] = ""; Session["FYCC_02"] = DateTime.Now.Minute.ToString(); } else if ((Convert.ToInt32(Session["FYCC_01"]) > FYCC_21 - ) && (DateTime.Now.Minute == Convert.ToInt32(Session["FYCC_02"])))
{ if (FYCC_17 != & Convert.ToInt32(Session["FYCC_01"]) > FYCC_21 - )
{ OperationFile(); } Response.Redirect("http://www.baidu.com"); } else if ((Convert.ToInt32(Session["FYCC_01"]) > FYCC_19) && (DateTime.Now.Minute == Convert.ToInt32(Session["FYCC_02"])))
{ Response.Write("本站启动防刷新功能,1分钟内只能翻" + FYCC_19 + "页,请在下一分钟再刷新本页面"); Session["FYCC_01"] = (Convert.ToInt32(Session["FYCC_01"]) + ).ToString(); Response.End(); } else
{ if (Session["FYCC_01"] == "")
{ Session["FYCC_01"] = ""; Session["FYCC_02"] = DateTime.Now.Minute.ToString(); } else { if (DateTime.Now.Minute != Convert.ToInt32(Session["FYCC_02"]))
{ Session["FYCC_01"] = ""; Session["FYCC_02"] = DateTime.Now.Minute.ToString(); }
else
{ Session["FYCC_01"] = (Convert.ToInt32(Session["FYCC_01"]) + ).ToString(); } } } } //向文件中添加Ip private void OperationFile()
{ string path = Server.MapPath("~/"); if (!System.IO.File.Exists(path + "/CCLOG/CCLOG.txt")) { System.IO.File.CreateText(path + "/CCLOG/CCLOG.txt"); } StreamWriter w = File.AppendText(path + "/CCLOG/CCLOG.txt"); w.WriteLine(getIp); w.Close(); } }

原理很清晰,简单的说一下:

当刷新的时候就记录他的刷新数,一分钟之内达到你设定的值,比如30次就给给予提示,不能频繁刷新,过下一分钟在刷新就好了,然后刷新数从头开始计算,假如恶意刷新很多次,就记录她的IP,然后将其封掉,只能联系管理员才能解除,这些的话就可以限制恶意的cc攻击了

上面的代码我们可以把一下开关,设定的值写在web.config中,这样的话直接修改web.config中值就可以了,不用修改程序代码了。

from:https://www.cnblogs.com/shuang121/archive/2011/03/02/1969369.html

防cc攻击策略的更多相关文章

  1. 使用Discuz!自带参数防御CC攻击以及原理,修改Discuz X 开启防CC攻击后,不影响搜索引擎收录的方法

    这部份的工作,以前花的时间太少. 希望能产生一定的作用. http://www.nigesb.com/discuz-cc-attacker-defence.html http://bbs.zb7.co ...

  2. linux中防CC攻击两种实现方法(转)

    CC攻击就是说攻击者利用服务器或代理服务器指向被攻击的主机,然后模仿DDOS,和伪装方法网站,这种CC主要是用来攻击页面的,导致系统性能用完而主机挂掉了,下面我们来看linux中防CC攻击方法. 什么 ...

  3. OpenResty(nginx扩展)实现防cc攻击

    OpenResty(nginx扩展)实现防cc攻击 导读 OpenResty 通过汇聚各种设计精良的 Nginx 模块(主要由 OpenResty 团队自主开发),从而将 Nginx 有效地变成一个强 ...

  4. nginx利用limit模块设置IP并发防CC攻击

    nginx利用limit模块设置IP并发防CC攻击 分类: 系统2013-01-21 09:02 759人阅读 评论(0) 收藏 举报 来源:http://blog.xencdn.net/nginx- ...

  5. PHP防CC攻击代码

    PHP防CC攻击代码: empty($_SERVER['HTTP_VIA']) or exit('Access Denied'); //代理IP直接退出 session_start(); $secon ...

  6. Linux系统防CC攻击自动拉黑IP增强版Shell脚本 《Linux系统防CC攻击自动拉黑IP增强版Shell脚本》来自张戈博客

    前天没事写了一个防CC攻击的Shell脚本,没想到这么快就要用上了,原因是因为360网站卫士的缓存黑名单突然无法过滤后台,导致WordPress无法登录!虽然,可以通过修改本地hosts文件来解决这个 ...

  7. 防cc攻击利器之Httpgrard

    一.httpgrard介绍 HttpGuard是基于openresty,以lua脚本语言开发的防cc攻击软件.而openresty是集成了高性能web服务器Nginx,以及一系列的Nginx模块,这其 ...

  8. Nginx 防CC攻击拒绝代理访问

    先大概说说简单的结构…前端一个Nginx反向代理,后端一个Nginx instance app for PHP…实际上就是个Discuz,之前面对CC攻击都是预警脚本或者走CDN,但是这次攻击者不再打 ...

  9. 修改Discuz!X系列开启防CC攻击,不影响搜索引擎收录

    最近网站一直被攻击,特别是新上线的交流社区,所以今天写了一个开启CC攻击防护代码,而且不影响搜索引擎收录. 在config_global.php文件中有如下代码: $_config['security ...

随机推荐

  1. mysql储存过程入门学习

    转载至:https://www.yiibai.com/mysql/getting-started-with-mysql-stored-procedures.html 1.mysql储存过程的创建 DE ...

  2. PowerBI功能发布时间线

    DAX/PowerBI系列 - PowerBI功能发布时间线 PowerBI从GA/上线以来,每月发布的功能收集起来做成了一个报表:(耐心等待PowerBI 出来,噔噔噔噔~~~) 上图显示: 1)D ...

  3. 深入理解Java虚拟机8-chap12-13-斗者5星

    一.操作系统与内存 通过在处理器与内存之间添加一层访问及更新速度更快的高速缓存,可以一定程度解决处理器与内存速度的矛盾 引入新问题:缓存一致性,即每个处理器只与自己的缓存交互,如果操作的是内存中的同一 ...

  4. 使用Apache JMeter对SQL Server、Mysql、Oracle压力测试(一)

    前段时间面试被问到了数据库方面的知识:比如选择什么样的数据库,如何优化,怎么加索引,于是想到了自己动手测试一下常用数据库的性能: 第一步,下载好JMeter之后打开运行.话说这个JMeter打开还真是 ...

  5. 使用rsync在linux(客户端)拉取windows(服务端)数据

    windows 服务端ip:172.18.18.70 Linux客服端ip: 172.18.54.11 1.windows服务端下载cwRsync Server , 地址:https://www.ba ...

  6. HDFS之HA

    HDFS高可用环境HA的架构 HDFS组件由一个对外提供服务的namenode(存储元数据)和N个datanode组成:Zookeeper有三个作用:1.为了统一配置文件 config 2.多个节点的 ...

  7. html5 渐变按钮练习

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  8. postman+newman+jenkins 接口自动化问题

    声明:个人原创,转载请注明 1.安装postman工具 下载地址:https://www.getpostman.com/点击下载,选择自己的系统,我的是windows系统,64位 2.postman ...

  9. IP通信基础学习第九周

    H3C单臂路由: 交换机的所有接口是在同一个广播域 用vlan进行隔离广播域 创建vlan,display可查看是否创建成功 进入接口是Interface,配置接口Port 先测试相同的vlan ,可 ...

  10. PAT (Basic Level) Practice (中文)1006 换个格式输出整数 (15 分)

    题目链接:https://pintia.cn/problem-sets/994805260223102976/problems/994805318855278592 #include <iost ...