为了安全起见,我想把django默认的admin url改成自定义的,比如把www.example.com改成mysite.com/admin/mysite.com/mysecretadmin/,这样admin就完全不能通过默认的url访问了。
我尝试了互联网上的一些解决方案,例如,我这样更改urls.py:
from django.conf.urls import patterns, url, include
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('api.views',
...,
...,
url(r'^secret-admin-url/', include(admin.site.urls)),
)
很遗憾,没有一个对我有效。有人知道解决方法吗?我用的是django1.5.4。
4条答案
按热度按时间vwkv1x7d1#
请参阅www.example.com下面URL中的“将AdminSite示例挂接到URLconf”部分https://docs.djangoproject.com/en/dev/ref/contrib/admin/#hooking-adminsite-to-urlconf
dzjeubhm2#
对于那些最近发现这个问题的人,基于Django 3.1文档:
注册默认的管理站点示例django.contrib.admin.site在URL**/admin/**:
你可以简单地改变
admin/
的网址到任何你想要的:oyjwcjzk3#
如果你不想使用默认页面
/admin
,你可以给admin添加一个密钥。如果您的模板中有链接
则这将引用上面的具有url的站点:
http://127.0.0.1:8000/admin_eTiOmEthelInEwathbace/
现在您不想发布这个
secret_key
,因此可以从环境变量中获取它,例如decouple
,这样urls.py
就变成了x3naxklr4#
如果您想防止暴力或字典攻击和您的管理员登录页无法访问未经授权的用户,普通用户.请按照以下步骤:
首先安装django管理蜜罐和信号
覆盖此.txt文件(因为不推荐使用future标记):
模板/蜜罐_信号/通知.txt:
django-admin-honeypot创建一个假管理员登录页面,如果有人试图访问你的假管理员登录页面,django honeypot会向管理员发送带有凭据的电子邮件。
如何访问主管理员登录页面?:
您的主要urls.py:
对于这种方式,你不能直接访问您的管理员登录页面..首先你需要登录您的网站,然后访问您的管理面板..
如何保护网站的登录页面免受攻击者攻击?:
如果检测到任何未授权用户的恶意行为,您可以使用这个django包来阻止他们的IP地址或用户名:
阅读文档:django-黑名单
·对不起我的英语