我有一个网络应用程序,如果它在很短的时间内提出很多请求,我想通过阻止IP地址来防止DOS攻击。
例如,如果同一个IP地址在一秒内发出100个请求,我可以认为它是某种攻击,我想阻止这个IP。
但是,在应用程序层进行此检查似乎太昂贵了 - 进行此检查的最佳方法是什么?
我应该在我的
进行此类检查答案 0 :(得分:0)
如果要在发出一定数量的请求时阻止IP地址,最好在网络层完成。这表明您可以在主机的网络堆栈中或使用路由器(在网络层运行)执行此操作。
您可能想要考虑的一些事情是: - 您真的想要根据IP地址阻止对整个主机的访问,还是要阻止访问特定端口上运行的特定应用程序。 - 有时,通过使用NAT,一个IP地址可能代表许多真实主机发出请求。
对于任何安全应用程序,您需要具有多层防御,因此最好还要投资一个好的防火墙。
答案 1 :(得分:0)
用于在django中生成API的一些应用程序实现了一些限制每秒请求数量的方法。 例如django-piston使用限制方法来做到这一点。 django-piston throttling
这是一种解决问题的简单方法。