0

我正在构建一个从 Web 服务检索数据的 Sencha Touch 2 应用程序。已决定,当您从空闲状态启动应用程序时,最好在应用程序上使用可选的 PIN 设置以提高安全性。我不确定管理此问题的最佳方法是什么。

Web 服务本身无法存储 PIN,并且该应用程序还设计为离线和在线使用,因此需要将数字存储在设备本身的本地存储中。我不相信这会提供任何级别的安全性,而且我还担心在 iOS 上本地存储显然被视为临时存储,因此在本地存储中设置数字并不一定意味着它会一直存在。

Web 服务已将过期的身份验证令牌返回到所有对 API 的请求都需要的设备。在我看来,这已经足够安全了,但 PIN 的想法似乎对客户很重要。

您将如何管理此要求?

4

1 回答 1

1

与在服务器/客户端之间传递的 cookie(并且它们都可以访问)不同,sessionStorage / localStorage由具体的浏览器 100% 存储在客户端中,sessionStorage 将数据临时存储在一个 HTTP 会话中,localStorage 将永久数据存储到客户端硬磁盘。优势很明显:

  • 数据不会通过 HTTP 请求/响应传递,将节省带宽。
  • 不会有 4KB 的限制,网站在客户端存储大数据时具有更大的灵活性。
    注意:W3C“建议每个域的本地存储大小限制为 5 兆字节”和“欢迎反馈”,这比 cookie 中的 4KB 限制要大得多。
  • 现在数据不会通过网络传递,这会相对更安全
  • 根据#3进一步考虑,现有的一些HTTPs连接理论上可以通过采用Web Storage使用纯HTTP,因为不需要对数据进行加密,数据存储在客户端。由于与 HTTP 相比,HTTP 通常只有 10% 的性能,因此最终要么提高性能,要么节省成本(采购更便宜的服务器硬件)。

所以我(个人)会尝试一下localStorage :)。如果您想要更高的安全性,您可以在将其存储到 localStorage 之前额外加密您的密码,例如http://point-at-infinity.org/jsaes/

于 2012-12-07T18:03:20.240 回答