【问题标题】:How to expose user passwords in the most "secure" way in django?如何在 django 中以最“安全”的方式公开用户密码?
【发布时间】:2023-03-11 00:14:01
【问题描述】:

我正在开发 Django 1.9 项目,我被要求允许一些用户打印一个页面,其中包含一组用户及其密码的列表。 当然,密码是加密的,没有现成的方法可以做到这一点。 我知道这意味着存在安全漏洞,所以我的问题有点自相矛盾,但是有没有任何合乎逻辑的方法可以不暗示软件中存在巨大的安全漏洞?

【问题讨论】:

  • 如果您需要更多信息,可以在这里尝试:security.stackexchange.com 他们已经对您的主题提出了一些问题,也许可以阅读一下?简而言之,不,您永远不能打印用户设置的密码。如果它是默认密码,则不会像标准生日+身份证号码那样成为问题。 wim 涵盖了我想说的其余部分。
  • 你不应该。这个请求没有意义,应该是非法的。

标签: python django passwords password-encryption


【解决方案1】:

不,没有任何合乎逻辑的方法不意味着软件中存在巨大的安全漏洞。

如果密码存储正确(加盐和散列),那么即使是对数据库具有无限制访问权限的站点管理员也无法以纯文本形式告诉您密码是什么。

你应该拒绝这个不合理的要求。如果您有一个有效的“密码重置”功能,那么除了用户之外没有人需要知道用户的密码。 如果您没有可靠的“密码重置”功能,请尝试将对话和开发工作引向这个方向。很少有真正的业务需要知道/打印用户密码,这些功能请求可能来自对身份验证和授权的实现细节有误解(或不了解)的非技术人员。

【讨论】:

  • 仅使用散列函数是不够的,仅添加盐对提高安全性无济于事。相反,iIterate over an HMAC with a random salt for about 100ms duration and save the salt with the hash.使用PBKDF2password_hashBcrypt等函数和类似函数。关键是让攻击者花费大量时间通过蛮力寻找密码。
猜你喜欢
  • 2015-07-13
  • 2012-02-29
  • 2011-03-03
  • 1970-01-01
  • 2018-12-05
  • 2015-09-14
  • 2020-12-01
  • 2013-04-24
  • 2018-06-01
相关资源
最近更新 更多