V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
tianxiacangshen
V2EX  ›  PHP

这段防 CC 攻击代码如何?

  •  
  •   tianxiacangshen · 2017-08-02 20:24:44 +08:00 · 4769 次点击
    这是一个创建于 2672 天前的主题,其中的信息可能已经有所发展或是发生改变。
    if($_COOKIE['yes_cc']){
    if(microtime(true) - $_COOKIE['yes_cc'] < 0.3){
    redirect('http://127.0.0.1');
    }
    }else{
    cookie('yes_cc',microtime(true),1); //不知道为什么,浏览器禁用 cookie 了这条语句还是能写入
    }
    if(!$_COOKIE['yes_cc']) redirect('http://127.0.0.1');

    设置 cookie 过期时间为 1 秒,如果 0.3 秒内访问超过 1 次就跳转到 http://127.0.0.1,如果禁用 cookie 也跳转到 http://127.0.0.1
    26 条回复    2017-08-16 11:18:34 +08:00
    JackBlack2006
        1
    JackBlack2006  
       2017-08-02 20:37:58 +08:00
    少数禁用了 cookie 的 firefox chrome 哭晕在硬盘里(滑稽)
    JackBlack2006
        2
    JackBlack2006  
       2017-08-02 20:38:33 +08:00
    不过这是个好思路,上述的用户毕竟少数
    lianz
        3
    lianz  
       2017-08-02 20:40:05 +08:00   ❤️ 5
    零价值代码。
    请求打到了 PHP 上已经算是防御失败了。
    zbinlin
        4
    zbinlin  
       2017-08-02 20:42:36 +08:00
    干吗要跳转到 127.0.0.1,直接 denied 不就行了。
    tianxiacangshen
        5
    tianxiacangshen  
    OP
       2017-08-02 20:43:03 +08:00
    @JackBlack2006 但是我刚刚测试禁用 cookie,cookie('yes_cc',microtime(true),1); 这条语句还是能写入和读出,不知道什么原因
    tianxiacangshen
        6
    tianxiacangshen  
    OP
       2017-08-02 20:47:53 +08:00
    @lianz 请问这段代码能防止每秒 1000-3000 次的 cc 攻击吗,我是 windows 服务器 ,php+mysql+IIS7 环境,请问怎么高效防 cc ?
    Phant0m
        7
    Phant0m  
       2017-08-02 20:51:13 +08:00
    试试 nginx+lua
    whatsmyip
        8
    whatsmyip  
       2017-08-02 20:52:08 +08:00
    设置 COOKIE 只是发出了一个 http header,浏览器禁用 COOKIE 就不会执行。

    你可以把 COOKIE[] 看作是一个普通变量,自然可以在写入后读取了。

    真想用 COOKIE 的话,可以先让跳转到某一页面种 COOKIE。

    不过话说这种手段基本防君子不防小人。
    VgV
        9
    VgV  
       2017-08-02 21:07:11 +08:00
    cookies 不行,如果我每一次访问都重新设置时间呢?
    Yourshell
        10
    Yourshell  
       2017-08-02 21:29:14 +08:00
    直接屏蔽 IP,第三方防火墙。
    ovear
        11
    ovear  
       2017-08-02 21:30:08 +08:00
    打到 php 上了就都不行。。
    rainex
        12
    rainex  
       2017-08-02 21:48:10 +08:00
    我知道的 cc 攻击都是专用工具,只管建立 http 连接,也不管你返回要建立 cookie 还是干嘛,人家根本不理会

    cooke 本质上是种靠不住的东西
    lslqtz
        13
    lslqtz  
       2017-08-02 22:15:47 +08:00 via iPhone
    @rainex 正是因为不会回应建立 cookie 才可以防御。
    iyaozhen
        14
    iyaozhen  
       2017-08-02 22:34:25 +08:00 via Android
    我每请求带的 yes_cc 固定为未来的一个时间戳,不就行了
    03
        15
    03  
       2017-08-02 22:59:38 +08:00 via Android
    永远不要相信用户输入。。。cookies 是存在客户端的
    0ZXYDDu796nVCFxq
        16
    0ZXYDDu796nVCFxq  
       2017-08-02 23:19:09 +08:00 via iPhone
    弄十几个能 set-cookie 的肉鸡,轻松击垮
    changwei
        17
    changwei  
       2017-08-02 23:29:08 +08:00 via Android
    人家黑客也不是吃素的,别人难道不会专门针对你这种策略写个 cc 攻击器嘛?
    rootx
        18
    rootx  
       2017-08-03 01:47:52 +08:00 via iPhone
    在 nginx 层防住才能叫防 CC
    jarlyyn
        19
    jarlyyn  
       2017-08-03 01:58:33 +08:00
    如果要做这种的话,直接 nginx 处理不就好了,连 lua 都不需要
    判断有没有 cooke,没有 cookie 403 到带 js 设置的页面并 reload
    有 cookie 正常访问

    参考 https://blog.jarlyyn.com/site/blogi/100-%E7%94%A8nginx+cookie%E9%98%B2%E6%AD%A2%E7%AE%80%E5%8D%95%E7%9A%84%E6%8A%93%E5%8F%96/%E7%A0%B4%E8%A7%A3%E9%AA%9A%E6%89%B0
    msg7086
        20
    msg7086  
       2017-08-03 02:19:34 +08:00
    负价值,只杀普通用户,不杀 CC 脚本。
    msg7086
        21
    msg7086  
       2017-08-03 02:20:50 +08:00
    @iyaozhen 说反了。应该是固定为 0 就行了。
    aksoft
        22
    aksoft  
       2017-08-03 08:55:58 +08:00
    你这个没啥用。。。直接在 nginx 杀,lua 的性能不错啊
    blackboar
        23
    blackboar  
       2017-08-03 09:09:59 +08:00   ❤️ 1
    CC 只是一种概念性的定义,如果量很小你的代码能起到一些效果,再稍微大一点你的 php 挂了,需要 http 服务来解决,如果再大一些 http 服务就会挂掉,可能需要系统层面来处理,以此类推这个问题最终要在网络层面解决的;在当前的情况下已经基本没有通过这种方式来攻击了,都是挂大量的肉鸡、机房机器来攻击,这种情况下根本不需要考虑攻击的方式,直接往死了发包就行,一般都直接挂了;最终拼的就是带宽、网络层面的硬防,所以现在市面上买带宽做高仿的很多,软件防火墙这类产品根本没有市场了。
    vjnjc
        24
    vjnjc  
       2017-08-03 11:17:12 +08:00
    @lslqtz 因为人家的目的就是占用链接啊,没有防住“占用链接”这个事就是没用
    lslqtz
        25
    lslqtz  
       2017-08-03 16:05:41 +08:00
    @vjnjc
    没有防住不代表不能防住,更不能代表 cookie 没用。
    owenk
        26
    owenk  
       2017-08-16 11:18:34 +08:00
    没什么卵用,防 CC 除了代码外,还得靠防火墙和防护,我之前做网站防 CC 时,写了很多代码,最后还是被 CC 了,痛定思痛,为了节约时间,除使用代码外,还使用了安全狗,但是要在服务器上安全客户端,麻烦。
    最后找的是知道创宇抗 D 保来防 CC 的,效果还不错,至少目前没有遇到什么大的问题。
    贴个地方,方便大家。
    https://www.yunaq.com/kangdbao/
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1478 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 17:13 · PVG 01:13 · LAX 09:13 · JFK 12:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.