84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
如题 如何防止别人用ab之类的测试软件恶意请求自己的网站
认证0级讲师
nginx的话可以用HttpLimitReqModule此模块能通过特定的客户端标识(如IP,UA等)来限制客户端在一定时间内的访问频次,比你在程序里控制要省资源得多。
nginx
如果要从代码层面防止的话, 只能通过ip在一段时间内的访问次数来限制。你可以把访问时间和次数记录在session中, 然后跟你自己定的访问限制对比一下, 如果超过限制就认为是恶意访问。 返回404给他。
目前此类软件可以很真实的模拟浏览器请求,所以在少量的请求下,基本上是屏蔽不了的。但是,使用此类软件请求你的网站通常都有其他目的,会产生大量重复的请求。可以通过单位时间的请求次数进行控制,相同IP或者相同的userAgint产生的异常请求通过程序判断来禁止。但是即便程序做了判断,请求已经进入处理阶段依然会影响性能,所以还要配合其他的处理方式,重复响应最好用缓存的方式来实现,避免过多的消耗CPU;确诊的问题IP应该在防火墙端就进行屏蔽。
你说的是我吗?哈哈可以对IP进行屏蔽处理,单位时间内IP请求过频繁,直接不予处理。貌似蛮多小公司都没做这样的处理,所以一压测基本挂掉。
nginx
的话可以用HttpLimitReqModule此模块能通过特定的客户端标识(如IP,UA等)来限制客户端在一定时间内的访问频次,比你在程序里控制要省资源得多。
如果要从代码层面防止的话, 只能通过ip在一段时间内的访问次数来限制。
你可以把访问时间和次数记录在session中, 然后跟你自己定的访问限制对比一下, 如果超过限制就认为是恶意访问。 返回404给他。
目前此类软件可以很真实的模拟浏览器请求,所以在少量的请求下,基本上是屏蔽不了的。
但是,使用此类软件请求你的网站通常都有其他目的,会产生大量重复的请求。
可以通过单位时间的请求次数进行控制,相同IP或者相同的userAgint产生的异常请求通过程序判断来禁止。
但是即便程序做了判断,请求已经进入处理阶段依然会影响性能,所以还要配合其他的处理方式,重复响应最好用缓存的方式来实现,避免过多的消耗CPU;确诊的问题IP应该在防火墙端就进行屏蔽。
你说的是我吗?哈哈
可以对IP进行屏蔽处理,单位时间内IP请求过频繁,直接不予处理。
貌似蛮多小公司都没做这样的处理,所以一压测基本挂掉。