【发布时间】:2014-07-30 14:28:44
【问题描述】:
我正在学习后端的技巧,目前正在尝试使用 apache 规则来阻止对我的 django 应用程序管理页面的访问,a là:
<Directory /admin>
Order deny,allow
Deny from all
Allow from xxx.xxx.xxx.xxx
</Directory>
我的 django/mod_wsgi 别名也设置为
WSGIScriptAlias /app /home/django/Projects/backend/wsgi.py
我正在阅读文档 here 和 here,但仍然不是 100% 清楚我该如何去做,因为在 django 项目中,管理路径没有明确定义(尽管静态文件是)。我对此的搜索也没有太多,所以要么我正在尝试做一些没人愿意做的事情,要么我正在考虑做错事(我不想弹出密码,谢谢)。
这里想要的结果是,如果您尝试从我指定的 IP 以外的任何 IP 访问我的管理页面,那么您的页面将永远不会加载或超时。
【问题讨论】:
-
Django admin url 是专门定义的:docs.djangoproject.com/en/dev/ref/contrib/admin/…
-
虽然通过 Apache 完全可以做到这一点,但可能大多数情况下我们更喜欢使用 Django 身份验证系统来控制对管理员的访问。你也可以使用Django中间件根据IP地址github.com/yourabi/django-banish进行拦截
-
如果您的动机是通过限制对“可信”IP 的访问来避免登录,请考虑 IP 地址可能是伪造的,这可能是您没有找到其他人这样做的原因方法en.wikipedia.org/wiki/IP_address_spoofing
-
我对任何其他建议的方法都很满意,但我找不到任何人试图以任何原因非常容易地限制对其 django 管理站点的访问。
-
默认情况下,管理员仅限于设置了
is_staff标志的用户(或is_superuser)docs.djangoproject.com/en/dev/ref/contrib/auth/…