【问题标题】:Sending username and password as md5 hash for every request from iPhone game为 iPhone 游戏的每个请求发送用户名和密码作为 md5 哈希
【发布时间】:2013-10-05 04:02:45
【问题描述】:

我正在构建一个简单的 iPhone 游戏,它具有社区地图功能。

用户只需使用电子邮件和密码注册一个帐户,然后他们就可以构建、上传和下载自定义地图。

现在我知道在每个请求中发送用户名和密码通常是一个坏主意,但它对于开发来说要容易得多,而不是必须处理登录会话,而且我认为这对于安全性不高的情况是可以的' t 一个主要问题。

最重要的是保护用户的密码,因为他们可能对多个帐户使用相同的密码。

所以我认为的简单方法是:将用户的用户名和密码作为一个 md5 散列发送给每个请求。这样可以吗?

当然,有人可能会劫持请求,但登录会话也有同样的风险。如果黑客掌握了用户的登录会话,他们是否只需要强制该用户注销,以便客户端在下一个请求中发送用户的用户名和密码?

【问题讨论】:

  • 从安全的角度来看,MD5 散列密码可能永远不会好...
  • 好点。我可能应该改用 SHA512。

标签: security session


【解决方案1】:

我没有任何移动应用开发经验,但一些一般原则仍然适用。首先 MD5 有缺陷,不要使用它。如果您要使用不同的算法(取决于您的选择,以及您正在寻找什么安全性/速度,我可能会选择河豚,但 SHA512 也应该完成这项工作),绝对使用盐。

我仍然认为,虽然简单的会话管理比在每个请求中发送登录信息要好,但应该使用简单的随机会话 ID(您在登录时生成它并与特定用户关联);当然,您会遇到 id 的随机性问题(如果它们是可预测的,这显然是个问题)。

但我想这里的重点是应用程序将如何与服务器通信;如果它是加密的(我认为是 HTTPS),无论哪种方式都应该没问题,我认为比使用会话还是散列登录信息更重要。并且 HTTPS 的使用也应该解决您对请求/会话劫持的担忧(除非有人用 200 个修改过的 PS3 单元破解加密 :))

【讨论】:

    猜你喜欢
    • 2012-07-15
    • 1970-01-01
    • 2011-02-11
    • 1970-01-01
    • 2016-02-07
    • 2012-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多