我正在制作一款具有社区地图功能的简单iPhone游戏。
用户只需使用他们的电子邮件和密码注册一个帐户,然后他们就可以构建,上传和下载自定义地图。
现在我知道每次请求发送用户名和密码通常都是一个坏主意,但是开发更容易,而不必处理登录会话,我认为对于安全性不高的情况,这是可以的。一个主要问题。
最重要的是保护用户的密码,因为他们可能会为多个帐户使用相同的密码。
所以我认为简单的方法就是:将每个请求的用户名和密码作为一个md5哈希发送。这样可以吗?
当然有人可能会劫持请求,但登录会话具有相同的风险。如果黑客掌握了用户的登录会话,他们是否只需要强制该用户注销,以便客户端在下一个请求中发送用户的用户名和密码?
答案 0 :(得分:1)
我没有任何移动应用程序开发经验,但一些一般原则仍然适用。首先MD5有缺陷,不要使用它。如果你打算使用不同的算法(取决于你的选择,以及你正在寻找什么样的安全/速度,那么我可能会选择河豚,但是SHA512也应该这样做),绝对要使用盐
我仍然认为,简单的会话管理比每个请求发送登录信息更好,简单的随机会话ID应该做(你在登录时生成它并与特定用户关联);当然,你遇到了ids的随机性问题(如果它们是可预测的,那显然是一个问题)。
但我想这里的重点是应用程序将如何与服务器通信;如果它是加密的(HTTPS我会假设)你应该没问题,我认为比你使用会话或散列登录信息更重要。 HTTPS的使用也应该照顾你对请求/会话劫持的担忧(除非有人用200个修改过的PS3单元破解加密:))