网站的openAPI接口被CC了有什么好的解决方案?

  • A+
所属分类:WooYun-Zone

1.带宽还有90%才被打满,所以带宽不虚

2.被打崩是因为一些开放的API被大量ip+access_key请求导致CPU100%了。比如获取RSA接口

3.单ip限制次数可能会导致业务误杀,因为有近1/3的用户是校园网用户,校园网可能是几百人共用一个ip

  1. 1#

    by灰客 | 2015-11-11 00:25

    要求带上cookie访问

    不含某cookie直接忽略

    并且还要优化一下你的api了,还有后端服务也要给力点。

  2. 2#

    麦兜 (麦兜爱吃苹果) | 2015-11-11 10:11

    加cpu,成本提高
    cookie,referrer 效果差
    ip限制 效果好,流失客户(分析的越仔细客户流失的越少)

  3. 3#

    冰比冰水冰 (有没有想过也许一辈子你都是个小人物) | 2015-11-11 14:55

    @by灰客 你的api接口能获取cookies?

    api没有限速功能吗?如果没有 redis计数器配合一下很简单的

  4. 4#

    erevus | 2015-11-11 17:41

    @by灰客 手机客户端表示不能加cookie

  5. 5#

    小胖胖要减肥 | 2015-11-11 18:20

    sign  时间错  整体加密

  6. 6#

    无敌L.t.H (‮……天百一爱恋考高:簿相色白产国) | 2015-11-11 20:10

    在Sign算法中加上出口IP怎么样……

  7. 7#

    0c0c0f (DebugPwn) | 2015-11-11 20:22

    1、ip黑名单
    2、优化操作系统内核参数
    3、百度加速乐~
    cpu 100%是是被ddos了么?

  8. 8#

    erevus | 2015-11-11 21:08

    @无敌L.t.H 安卓那也是可以逆向出来的

  9. 9#

    无敌L.t.H (‮……天百一爱恋考高:簿相色白产国) | 2015-11-11 21:13

    @erevus 但是你可以根据IP WHOIS的分布进行请求数限制,就像你说的校园网访问多,那就将校园网的阀值设高点。

  10. 10#

    by灰客 | 2015-11-12 09:14

    @erevus @冰比冰水冰 要求带上SESSION访问可以的吧?再外加一个什么值,来判断单次访问次数,这个值在云端对应,要求

    API接口无非就是POST或GET它呗?
    SESSION在客户端是存在COOKIE中的。

  11. 11#

    by灰客 | 2015-11-12 09:22

    还有一个方案

    如果这个api是你自己在调用

    那么把他变为三步(参考 WEB版飞Q发送短信API)
    1、登陆  增加登陆接口,登陆后包含上次的登陆SESSION去做第二步。
    2、简单的一个接口肯定不会导致机器100%,不要总查询数据库进行相关计算
    3、不要总查询数据库进行相关计算,重要的东西要放在内存中!

    以上问题就变成了单人单号操作了,后台可监控单个账号查询次数(账号注册可模仿支付宝注册,一条短信验证码,然后返回账号)

    还有,模仿一下微软的时间校准api吧 那么多机器怎么就没C死他,优化程序为辅,升级硬件才是硬道理

  12. 12#

    90Snake | 2015-12-04 13:47

    session中添加用户上次访问时间
    利用该时间来判断用户访问频率
    通过频率进行下一步操作