设置了CF全站缓存
这个blog每天就百十个IP,还大多数是机器人/搜索引擎等,当然是不需要这么玩的。 这个只是拿来示范一下防CC。
有的时候,需要把自己的网站地址放出去,但一放出去就很容易遭到无聊的人的CC攻击。当然,可以把CF的安全级别拉高,然而这样对用户体验会很差,也许本就是去想弄流量的,结果,把已经有的用户都一起赶跑了。
所以,缓存的用处就来了。比如全站缓存一下不回源,再怎么CC也是CC去CF那里,关咱啥事呢。能把CF都放倒,那咱们也没办法了。
第一步,设置需要缓存的URL。
既然是全站,那就只是设一下例外了。
对这个blog(typecho)来说,后台管理 /admin 评论/comment 登出/logout 搜索 .../search/...需要是动态的,不能缓存。
非常重要! 在Cache key设置中,需要激活 Ignore query string,就是忽略查询字符串。
缓存过期时间TTL根据自己情况设一下,我设的2个小时。其实对blog来说,设置24小时都不是问题,毕竟更新不频繁。
第二步,上面放的几个不缓存的例外口子需要加固一下,就是设置人机验证。这个影响体验,然而大多数人是不会出现的,无所谓。
完工。
这样一弄,人家再怎么DD怎么CC都无所谓了,对吧? 而且对用户体验也没太大影响。如果稍微对Typecho二开一下,就是有新评论后清除一下缓存是最好,毕竟现在的评论也一起被缓存2个小时了。哪天我无聊的时候来给typecho打个补丁。
**说明一下,CF的rate limit是没太大用处的,因为它只能限制同IP来源。然而,现在的CC攻击都是动用大量的IP,比如1万台肉鸡,每分钟10次请求,这个rate limit通常都会允许的,然而,实际情况是,每分钟10万次请求,服务器和网络已经崩了。
**缺陷: 如果服务器性能太差以及带宽太小,可以被404攻击打死。就是,CC攻击来的链接都是不重复的不存在的。