最近,主机邦的一位客户反馈网站被大量CC攻击,而百度云防护毫无反应。
为此主机帮特地去看下该用户设置的Web防护规则,发现这个用户设置了一个非常长的检测IP访问频率设置。
检测时长高达1个小时!
要知道几乎没有用户连续访问一个网站高达一个小时,而且这一个小时还设置了可以访问120次,这不是相当于对所有用户不做访问频率限制嘛。
正常的频率限制应该设置极短的时间内的检测,比如2秒内不超过3次请求
需要注意的是,如果你要给全站做单IP频率限制的,一定要查清楚每个页面大概加载多少内部链接,否则可能因为设置太小,导致打开一个页面,就超过了你设置了请求次数,从而被拦截。
如下图:
如做了URI:/(全站)前缀匹配的,一定要设置访问次数高些
而如果你是设置API访问频率或者某个网站目录下的的链接,是可以设置最低,设置如下图:
相当于两秒内只能访问一次API,超过次数就封禁1440,这符合正常用户请求习惯。
访问频率限制功能的工作逻辑是你设置的URI单一IP访问次数来计算的。
比如我设置前缀匹配/category/dashi,2秒钟只能访问2次,超过会封禁。
那么系统会计算我打开/category/dashi/网页时,有没有加载含前缀为/category/dashi/的链接,如果有,每多一个链接,就相当于我多访问一次,要是有加载超过3个这样的链接,那么相当于我打开链接1秒钟就有超过2次以上的访问次数了,直接原地被封。
而如果我打开/category/dashi/网页时,网页加载的链接只有/category/dashi/这一个请求,那么只算一个访问次数,需要两秒钟内刷新/category/dashi/超过两次才会被封,一般用户是不会2秒钟请求超过3次的。