限制Django管理员使用Nginx登录以防止字典攻击
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了限制Django管理员使用Nginx登录以防止字典攻击,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1441字,纯文字阅读大概需要3分钟。
内容图文
![限制Django管理员使用Nginx登录以防止字典攻击](/upload/InfoBanner/zyjiaocheng/966/9e199d9dd4364bd7ac9734bd0b7d5d77.jpg)
我正在研究限制Django管理员登录的各种方法,以防止字典攻击.
这里解释了一个解决方案:http://simonwillison.net/2009/Jan/7/ratelimitcache/
但是,我更喜欢使用Nginx在Web服务器端进行速率限制.
Nginx的limit_req模块就是这样 – 允许您指定每分钟的最大请求数,如果用户超过则发送503:http://wiki.nginx.org/NginxHttpLimitReqModule
完善!我以为我已经破解了它,直到我意识到Django管理员的登录页面不在一致的位置,例如/ admin / blah /给你一个登录页面,而不是弹跳到标准的登录页面.
所以我无法匹配URL.任何人都可以想到另一种方式来了解管理页面是否正在显示(regexp响应HTML?)
解决方法:
首先:为了保护django管理员一点点,我总是使用一个网址管理员与/ admin /一个好主意是将管理员部署为另一个域或子域的第二个应用程序
您可以通过IPTABLES / NETFILTER将每分钟的请求限制为整个webapp.有关如何完成此操作的教程可以在debian administrator找到.这是一个如何保护ssh-port的示例,但是您可以对http使用相同的技术.
您可以使用NginxHttpLimitZone模块来限制分配的会话的同时连接数,或者作为特殊情况,从一个IP地址.编辑nginx.conf:
### Directive describes the zone, in which the session states are stored i.e. store in slimits. ###
### 1m can handle 32000 sessions with 32 bytes/session, set to 5m x 32000 session ###
limit_zone slimits $binary_remote_addr 5m;
### Control maximum number of simultaneous connections for one session i.e. ###
### restricts the amount of connections from a single ip address ###
limit_conn slimits 5;
以上将限制远程客户端每个远程IP地址不超过5个并发“打开”连接.
内容总结
以上是互联网集市为您收集整理的限制Django管理员使用Nginx登录以防止字典攻击全部内容,希望文章能够帮你解决限制Django管理员使用Nginx登录以防止字典攻击所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。