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