我们正在 jQuery Mobile 平台上开发一个移动 web 应用程序,它需要用户提供他们的用户名和密码。
与其要求用户每次重新输入他们的详细信息,我们只想向他们询问一次他们的用户名和密码,然后提示他们输入密码。
我们将加密此 pin 并加密用户标识符字符串,并将两者保存在 LocalStorage 或 Cookie 中。
当用户第二次访问应用程序时,我们将测试是否可以找到用户标识符,如果可以,则提示他们输入 PIN 码。
输入密码后,我们将安全地 (SSL) 传递密码和用户标识符,以便在服务器上解密和验证。
我在一些地方读到我们应该使用 Cookies 而不是 LocalStorage(从安全角度来看)。您是否同意这一点,并且可以在大多数智能手机上使用 cookie?
我们还需要确保用户在每次关闭浏览器或浏览到另一个页面或超过 30 分钟不事件时都需要重新输入他们的 pin。
为了管理这个,我想在 SessionStorage 中存储一个值,因为我读到这比 LocalStorage 更安全,并且在浏览器关闭时过期。或者,我们可以再次使用 Cookie。
安全是一个关键问题,因此我很想听听您可能拥有的任何提示和/或替代方法。
提前谢谢了...
最佳答案
如果安全是您的主要关注点,我不建议使用 cookie,因为它们随每个请求发送到服务器,这可能会被任何通过网络嗅探该流量的人拦截。在性能方面,使用 cookie 还会增加服务器和客户端之间来回传输的数据量。
为了您的目的,我会选择 sessionStorage
如果您希望您的数据仅在浏览器 session 的生命周期内保持不变,包括可以测试 session 过期的时间戳。数据在 sessionStorage
和 localStorage
只停留在客户端,永远不会发送到服务器。
关于web-applications - 移动应用程序开发 - HTML5 LocalStorage vs SessionStorage vs Cookies,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5862764/