1

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

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

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

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

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

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

4

1 回答 1

1

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

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

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

于 2013-09-29T12:39:35.387 回答