【问题标题】:Is there a way to password protect the python shell in a Django application?有没有办法在 Django 应用程序中对 python shell 进行密码保护?
【发布时间】:2019-07-09 15:55:25
【问题描述】:

在我的Django 应用程序中运行python manage.py shell 以获取superuser 时,我想对shell 进行密码保护。

运行python manage.py shell 后,我希望系统提示我输入超级用户的用户名和密码。

【问题讨论】:

  • 我不明白你在问什么。 shell 不是为任何特定用户运行的。
  • 这个的用例是什么?考虑到运行 shell 的人可能也有其背后的代码,不确定这是否可以以任何有意义的方式完成......如果你想阻止某些人出于某种原因运行管理命令,那么锁定项目文件,这样只有某些操作系统用户可以访问它。

标签: python django python-3.x python-2.7 python-requests


【解决方案1】:

您可以使用createsuperuser 命令创建超级用户:

$ python manage.py createsuperuser --username=joe --email=joe@example.com

您也可以使用django.auth.middleware。 django.auth.middleware 需要在你的服务器上为 unauth 用户隐藏一些操作。

更多关于网络请求中身份验证的信息here

【讨论】:

  • 用例是,如果应用程序在由多个用户使用的本地计算机上运行,​​则用户将被限制通过站点的登录和管理员登录来访问应用程序数据,但如果他们有权访问一个他们可以访问数据库的外壳。这个想法是让某人在安装过程(数据库迁移)期间设置一个超级用户帐户,然后运行 ​​shell 将需要超级用户密码
  • 看起来你想使用 django.auth.miidleware:docs.djangoproject.com/en/1.8/_modules/django/contrib/auth/…。我说的对吗?
  • 运行python manage.py shell987654326@时中间件是否可以激活
  • django.auth.middleware 需要为您的服务器上的未授权用户隐藏一些操作。多个不受信任的用户使用的本地计算机上正在运行的服务器不是预期的。例如 django config 包含密钥。不受信任的用户也可以访问它。您为什么不想为此使用单独的机器并提供 OS 超级用户保护?
猜你喜欢
  • 2012-07-30
  • 1970-01-01
  • 2013-08-05
  • 2014-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-25
  • 2011-01-09
相关资源
最近更新 更多