在django中设置限制(防止视图上有太多命中)

时间:2013-08-27 18:24:17

标签: python django security

不确定发布制作django应用程序的人的风俗习惯,但我认为对于那些垃圾视图的人有某种保护机制?

如果一个视图没有实现缓存,并且用户只是多次使用该网址,那么这不是一件坏事吗?

我想要一些机制来阻止人们通过IP地址或诸如此类的东西,如果他们反复高速调用视图。

我尝试使用此应用:http://django-ratelimit.readthedocs.org/en/latest/install.html

但是它很快就行不通,或者我的设置错了(有没有人使用它?)。

感谢。

2 个答案:

答案 0 :(得分:2)

通常,这种安全性会发生在Web服务器级别,即Nginx或您用来为应用程序提供的任何内容。考虑一下这样的事实:为了在一定次数的尝试后阻止你的应用中的某人的IP,你需要在某处记录他们的IP,然后检查传入的请求。如果要进入你的应用程序,那么这种功能最适合中间件级别。

如果您是为了保护个人观点而在应用程序级别执行此操作,那么我可能会通过装饰器来执行此操作。

无论如何,您应该有一个适当的机制,因为您所描述的内容也可能是在正确的上下文中的拒绝服务攻击。一些Web主机为此提供硬件级保护,因此也请询问您的主机。

答案 1 :(得分:1)

通常在制作中你有一些前端服务器。如果您的应用程序逻辑没有与请求数量相关联,那么最好在前端执行此工作。例如,Nginx有limit_req模块: http://nginx.org/en/docs/http/ngx_http_limit_req_module.html