【问题标题】:App Engine: what are best practices for transmitting a password and storing it securely in Google App Engine?App Engine:传输密码并将其安全存储在 Google App Engine 中的最佳做法是什么?
【发布时间】:2011-02-14 18:34:46
【问题描述】:

我想知道从网络表单传输密码并将其存储在数据存储中的最新技术是什么。

最近很多帖子都指向bcrypt,但是,没有纯 Python 实现,这是 App Engine 的要求。

有什么建议吗?

【问题讨论】:

    标签: security google-app-engine passwords


    【解决方案1】:

    最佳实践?将用户 API 与 Google 帐户或 OpenID 一起使用,因此您一开始就不会存储或传输密码。

    如果您必须自己做,请通过 SSL 传输登录数据,并使用 PBKDF2 等方案存储散列、加盐和 strengthened 的密码。

    【讨论】:

    • 当然。最先进的技术是让 Google、Facebook、Twitter 或 LinkedIn 担心他们的密码系统的安全性,而您只需存储一个临时令牌。我确信 Gawker 和索尼 (PS3) 的员工中有很多聪明人,但这并没有阻止他们做一件被利用的愚蠢事情。
    • 是的,是的,是的。 @znq,你真的应该认真思考一下是否真的值得重新发明一个已经如此美丽的轮子。
    • 对于很多应用来说,要求用户拥有谷歌账号是不合理的,而且在 GAE 文档中 OpenID 仍然被标记为“实验性”。
    【解决方案2】:

    您可以使用已移植到 google-app-engine 的PyCrypto

    当然,您永远不应该存储实际密码。存储散列就足够了。当用户输入他的密码时,您再次对其进行哈希处理并将其与存储的值进行比较。

    您当然应该只通过 https 接收密码,这在 google-app-engine 中受支持(尽管 only through you appspot domain

    【讨论】:

    • 说“存储哈希就足够了”。是不是有点不好的建议?我认为应该至少在混合物中添加一次盐,检查这个答案(不是被接受的,而是投票最多的):stackoverflow.com/questions/1645161/…
    【解决方案3】:

    BCrypt 前段时间已移植到 Python。从那以后我就一直在优雅地使用它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-26
      • 1970-01-01
      • 2011-02-10
      • 2011-02-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-20
      • 1970-01-01
      相关资源
      最近更新 更多