python - 安全性:绕过使用 URL 输入的登录

标签 python mysql django security authentication

我正在为我的 Django 网络应用程序创建一个登录系统,该应用程序连接到一个 MySQL 数据库,其中包含一个用于管理人员的表,其中包含他们的姓名、电子邮件和密码。我的登录屏幕有一个 localhost/login 的 URL。我想在服务器外数据库中查询用户输入信息时输入的每个经理的用户名和密码。如果凭据匹配,那么我想将它们重定向到管理器页面,即 localhost/manager。如果它们不匹配,那么我想将它们保留在那个页面,localhost/login。我的问题是,是什么阻止用户将 localhost/manager URL 路径输入到他们的浏览器并绕过登录,在未经身份验证的情况下获得访问权限?有没有一种好的方法将用户名和密码存储在数据库中,使它们更安全,同时又可以访问和检查?

最佳答案

假设您的经理 从基于类的 View 返回。然后在第一个参数中使用 LoginRequireMixin。像这样。

from django.contrib.auth.mixins import LoginRequiredMixin
class ManagerView(LoginRequireMixin, TemplateView):
   ...

如果您使用基于函数的 View ,请使用 this

from django.contrib.auth.decorators import login_required

@login_required
def ManagerView(request):
    ...

关于python - 安全性:绕过使用 URL 输入的登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53983255/

相关文章:

php - 使用 PDO 获取 MySQL 数组时出错

django - 如何在序列化器 Django 中序列化 BigIntegerField、TextField

python - 如何使 Django sessionId cookie 安全

python - NLTK 与距离度量的一致性

python - 使py2exe产生 `.py`个文件

python - 使用 CherryPy 延迟声明静态文件/文件夹

mysql - 导入 csv 文件会导致外键约束

php - 服务器接收到作为二维码扫描器的客户端手机的二维码扫描结果后,如何将查询结果显示在php页面上

python - ? : (urls. W005) URL 命名空间 'main' 不是唯一的。您可能无法反转此命名空间中的所有 URL

python - 在Python BeautifulSoup中如何移动标签