
折腾一番装了fail2ban和redis后,被攻击情况有所好转,fail2ban封掉一批访问频繁的ip,redis缓存时间段内的搜索词减少mysql压力,同ip一分钟内搜索次数也做了限制,但是还是无法完全解决。
昨儿晚上封掉1000多个IP,因为IP数量多,即使不短时间内密集访问也一样能有海量请求,搜索词不断变化,redis缓存和限制搜索频率也基本起不了太大作用,这种IP量加速乐也完全无效形同虚设,所以还得靠自己。
所以现在即使不是完全瘫掉,也会经常打不开页面,求问还有什么解决思路可以有效根治?
1 Chichele 2015 年 1 月 2 日 via Android 怎么会IP封不完? |
2 ryd994 2015 年 1 月 2 日 cdn形同虚设谁说的? cdn有没有用不是取决于客户数量,而是取决于动态内容的数量。(当然用户的分布也会有少许,但是应该不大) 根治就该注册啊 |
3 ytf4425 2015 年 1 月 2 日 卧槽那人IP这么多! 遇见大流量攻击就找CloudFlare |
4 typcn 2015 年 1 月 2 日 表示上 ccav 那天被十万IP攻击,我默默喝着 coffee 看着数字上涨,网站依然秒开。 CDN 只是起一个辅助作用,帮你过滤掉一些频率高的访问。 程序优化 和 服务器的配置才是最关键的部分,上次就跟你说了搜索加一些限制或者加一些验证。 不想改代码就加钱上高配。 |
6 typcn 2015 年 1 月 2 日 |
8 typcn 2015 年 1 月 2 日 @Jack 99.9% 的 bot 都不可能运行 JS,也没有人那么闲去写支持 JS 的攻击器,加一些需要 js 运算的东西,使用 obfuscator 保证不被轻易破解,比如根据 forum 内容生成 以及打开时间 进行 aes 加密 + base64 ,算出 表单 secret , 服务器保证这个 secret 正确的情况下载进行搜索。当然让客户端计算 hash 也可以。 |
13 LU35 2015 年 1 月 2 日 试过服务器安全狗吗? |
14 iannil 2015 年 1 月 2 日 @Jack 同typcn所说,你可以参考下58同城登录所用的前端逻辑,每次提交表单都用js+时间戳计算出一个60s内有效的key。如果能做到那种复杂度,攻击难度会提高N个难度。 其实所有使用软件方式做网站攻防都是个动态的过程,除了加大服务器性能和带宽到N高以外,没有什么绝对根治的办法,你需要针对攻击方式不断更改防御的方式,直到把攻击方的攻击成本加到他们无法承受的程度才可以。 |
15 leeyiw 2015 年 1 月 2 日 搜索加验证码尝试过吗? |
17 roricon 2015 年 1 月 3 日 |
18 amxku 2015 年 1 月 3 日 如果Nginx,可以试试 http limit conn http limit req |