gpt4 book ai didi

django - 如何保护 Django 站点

转载 作者:行者123 更新时间:2023-12-02 00:11:50 25 4
gpt4 key购买 nike

我有一个正在运行的 Django 站点 - 已上线,运行良好。它使用 Django 的 contrib.auth 进行身份验证。它托管在 Heroku 上。我想为演示目的设置一个该站点的克隆,但想在该站点周围添加一个额外的安全层,这将是一个非常简单的密码保护。不必是防弹的或牢不可破的——只要足以让“麻瓜”放弃尝试即可。

此授权层不应以任何方式干扰站点身份验证本身。它只是一个外环(检查一次,在 session 中存储访问权限)。因为该站点托管在 Heroku 上,所以我无法在 Web 服务器级别执行此操作 - 它必须是应用程序本身的一部分。

我的核心选择是创建一个 django 应用程序(工作名称“perimeter”)来执行此操作,但如果有人知道另一种方法来执行此操作,我将非常感激。

核心功能包括:

  • 一些生成短标记的机制(< 8 个字符)
  • 一些针对电子邮件地址记录 token 的机制
  • 在首次访问网站时提示用户输入 token /电子邮件组合
  • 此后不受限制地访问网站(标准身份验证模型在此时启动)

典型的用户旅程是:

  • Bob 请求站点所有者(我)访问演示站点
  • 我为 Bob 生成一个 token 并将其与站点 URL 一起发送给他
  • Bob 点击链接,被重定向到页面以输入他的电子邮件和 token
  • 如果 token 有效(X 小时/天后过期),存储在 session 中,让 Bob 进入。
  • 如果 token 无效,则返回 403 (/401)。

(您可能想知道为什么保护已经公开的网站副本有任何意义。这是因为该网站是成员(member)制网站,在演示版中它将“自动注册”以便人们可以看到在无法访问真实数据的情况下网站内部是什么样的。但是,我希望能够跟踪网站上的用户。)

[更新:备选方案]

一个直截了当的替代方法是将 token 添加到我发送给 Bob 的 URL,忽略他的电子邮件,并简单地验证 token 本身。只要 Bob 始终使用电子邮件中的 URL,这就可行。

最佳答案

我已经为此创建了自己的解决方案 - 满足 Django-Perimeter .

此应用程序尚未打包(尚未),因此您需要克隆源代码并将其手动添加到您自己的 Django 站点,但它确实有效。它提供了生成访问 token 的能力,然后使用这些 token 安全访问网站(整个网站,而不是网站的一部分)。

[更新]

现在可以通过 PyPI 获得 - http://pypi.python.org/pypi/django-perimeter

您可以使用 pip install django-perimeter 进行安装

关于django - 如何保护 Django 站点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14817250/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com