【发布时间】:2011-08-17 07:01:44
【问题描述】:
我们正在 jQuery Mobile 平台上开发一个移动 Web 应用程序,该应用程序要求用户提供他们的用户名和密码。
而不是每次都要求用户重新输入他们的详细信息,我们只想询问他们一次用户名和密码,然后提示他们输入密码。
我们将加密此 pin 并加密用户标识符字符串并将两者保存在 LocalStorage 或 Cookie 中。
当用户第二次访问应用程序时,我们将测试是否可以找到用户标识符,如果可以,则提示他们输入 pin。
输入 pin 后,我们将安全 (SSL) 传递 pin 和用户标识符,以便在服务器上解密和验证。
我在一些地方读到我们应该使用 Cookies 而不是 LocalStorage(从安全的角度来看)。您同意这一点吗?大多数智能手机都可以使用 cookie 吗?
我们还需要确保用户每次关闭浏览器或浏览到另一个页面或超过 30 分钟不活动时都需要重新输入他们的密码。
为了解决这个问题,我正在考虑在 SessionStorage 中存储一个值,因为我读到这比 LocalStorage 更安全,并且会在浏览器关闭时过期。或者,我们可以再次使用 Cookie。
安全是一个关键问题,所以我很想听听您可能有的任何提示和/或替代方法。
在此先感谢...
【问题讨论】:
-
我阅读了您选择的答案中的对话。即使散列存储 PIN 与存储密码一样“糟糕”,因为它们可以被取消散列 - 但我了解您来自哪里:但是,即使您只将 PIN 发送到服务器,也会出现同样的问题。标准做法是在服务器端将盐添加到已接收到的任何散列中,对其进行散列,然后存储结果。稍后在每次后续登录时,将接收到的哈希与您存储的内容进行比较,并使用偏移量允许哈希盐的长度,当然只有您知道。从而避免任何直接存储。
-
你如何解散它?
标签: web-applications mobile security jquery-mobile