• 资源总数:14258个
  • 评论总数:1795次
  • 本月更新:1311个
  • 访问总数:10246651次
笑哥
  • 站长:笑哥
  • 89573952
    • 打造专业的干货基地
    • 分享实用的软件技术
    • 资源总数:14258个
    • 评论总数:1795次
    • 本月更新:1311个
    • 访问总数:10246651次

    WordPress网站如何有效防御被cc攻击(禁止频繁F5刷新)

    笑哥2017-12-01笑哥共享网
            网站被CC攻击了怎么办?特别是那种坚持不懈的长久的CC攻击,这一点特别让各位站长感觉到头疼,比如这几天,我就遭遇到了连续大概一个星期的持续cc攻击,表示非常懊恼,那么如何防御网站cc攻击呢?就在昨晚我已经有效的解决网站cc攻击的问题了。

    网站被CC、ddos攻击
            建站的人都知道何为cc、ddos攻击,前者就是模仿访客浏览网站,短时间内访问次数大,造成服务器带宽和cpu占用大,导致死机、宕机的情况,后者是直接攻击你的服务器ip,让你瘫痪,当然这里只是简单的描述,攻击模式很多种,就不一一介绍了

    这几天来访问网站的大虾也知道,经常进不去网站,这里附上一张图,表达一下这几天的心酸史:

    防御cc攻击

             对 你没有看错,这几天网站一直在宕机和恢复,光是邮件就有600封,排除日常的100左右,大概平均下来,网站在这一个星期内被ddos或者cc了250次左右!
            之前没开cdn就一直被ddos,这几天一下就是几个G的流量打过来,服务器被封了两次之后立马开启了cdn,然后就是无尽的cc攻击,表示非常奇怪,一c就挂网站,之后就开启了双cdn的模式,也是一样,被人一cc攻击,cpu就是百分百的内存占用,然后网站就会宕机。

    表示以前不会有这种情况的,不过无奈于没有时间碰电脑只能看着被CC,无法解决问题,昨晚刚刚回家,立马就熬夜查看问题,准备备份服务器重新搭建环境的时候,才发现问题所在。

            不备份,不知道,已备份吓一跳,wordpress备份里面有个wp-options的数据表,居然占用了270M的数据文件,意味着每一次访问,对于数据库都是巨大的压力,所以轻易CC就会挂掉,找到问题就立马解决,删除了里面的无用数据,现在就没啥大事了。这里关于如何删除数据和查询问题,有关于wordpress的无作为会另外开贴,因为大多数wordpress网站都会因为wp-options这个文件长时间不清理,导致速度变慢,特别是开启了wp-rocket以后!

    如何防御cc攻击
           首先cdn是不错的的防御选择,能够同时防御cc和ddos(因为屏蔽了自己服务器的ip)攻击,不过针对于wordpress如果出现上面的wp-options或者数据库占用过大,也是无法防御的,因为每一次访问都会查询数据库,这个是没法防御的。

    这里讲解一下原理,给大家提供思路,然后在分享一下关于wordpress防御CC攻击的代码,希望能够帮助到大家!

    CC攻击原理
    ddos必须知道对方ip才可以进行攻击,攻击模式多样性,包括攻击网站和网吧,以及对方电脑,我们可以通过cdn隐藏真实ip搞定,
    不过cc就是模拟用户访问了,这个没法防御的,顶多别人攻击量大的时候来个验证码访问或者临时封ip,不过只要你开启了cdn或者像无作为这样开启了双cdn防御基本都没问题。
    不过也有意外情况,大家可以通过这里分享的原理,去找出防御cc攻击的方法,其原理如下:
    cc攻击模拟多个用户访问网站→网站内容被下载→像数据库发送大量请求→cpu和带宽占用率提高(或者长时间出现满cpu,满带宽)→服务器资源被占用用户无法访问。
    这几天无作为就是解决了数据库的需求,精简优化了数据库,导致服务器资源占用减少,解决了问题。

    wordpress防御cc攻击代码
    将下面的防 cc  代码加入到当前使用主题的 functions.php 中即可


    //防止CC攻击-www.xiaogegh.com
    session_start(); //开启session
    $timestamp = time();
    $ll_nowtime = $timestamp ;
    //判断session是否存在 如果存在从session取值,如果不存在进行初始化赋值
    if ($_SESSION){
     $ll_lasttime = $_SESSION['ll_lasttime'];
     $ll_times = $_SESSION['ll_times'] + 1;
     $_SESSION['ll_times'] = $ll_times;
    }else{
     $ll_lasttime = $ll_nowtime;
     $ll_times = 1;
     $_SESSION['ll_times'] = $ll_times;
     $_SESSION['ll_lasttime'] = $ll_lasttime;
    }
    //现在时间-开始登录时间 来进行判断 如果登录频繁 跳转 否则对session进行赋值
    if(($ll_nowtime - $ll_lasttime) < 3){ if ($ll_times>=5){
    header("location:http://127.0.0.1");//可以换成其他链接,比如站内的404错误显示页面(千万不要用动态页面)
     exit;
     }
    }else{
     $ll_times = 0;
     $_SESSION['ll_lasttime'] = $ll_nowtime;
     $_SESSION['ll_times'] = $ll_times;
    }


    上面代码中将链接换成:127.0.0.1的作用就是自己攻击自己,因为127.0.0.1是本机的意思。

    本站所有工具纯属免费共享,请学会感恩作者,无脑喷子永封IP段+删帐号所有评论 不喜欢请右上角X

    快快发表了一针见血的评论,你还等什么?
    用户名:
    验证码:点击我更换图片
    微信关注笑哥返利机器人
    微信号:blm737669552

    把宝贝分享给我(即宝贝链接),我会自动帮你找优惠券和返利的,领券购物立省钱!

    扫码加不上的加微信号blm737669552查看详情