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