7

我需要使用 jquery 移动 api 访问需要基于每个用户进行 http 身份验证的 api。

我计划将该应用程序作为网站提供,并将其打包在 Cordova 中以用于各种设备。

如果我有一个登录表单,它捕获用户名和密码并将其存储为 javascript 变量,有没有办法公开这些数据?

如果是这样,处理存储用户身份验证详细信息的最佳选择是什么?如果我不需要的话,我不愿意建立一个中间服务器。

非常感谢。:D

4

2 回答 2

3

我建议不要将用户名或密码存储在 localStorage 中,而是存储访问令牌。访问令牌可以经常更新和更改,它也不会透露用户是谁或他们的哈希密码是什么。

除了 iOS 钥匙串,或者如果您正在为非 iPhone 设备编写代码以增加安全性,您还可以:

确保您没有将设备 ID 存储在 localStorage 中。

为了增加安全性,您还可以将用户的 IP 地址存储在数据库中并检查(服务器端)IP 地址是否匹配,但这可能太多了,因为用户每次连接到新位置的互联网时都必须登录或如果他们的 IP 地址发生变化。

将 IP 地址存储在服务器数据库中,然后检查它是否匹配(服务器端)可能是最安全的,因为是否有人掌握了 localStorage 数据并不重要。

于 2012-12-02T04:16:38.467 回答
2

所以我知道你不控制你登录的后端?如果你这样做,我会更倾向于发送一次用户名/密码,然后存储一些访问令牌,以便你后续访问。

如果您不控制后端,那么您将无法存储用户名/密码。我会说,将它们设置在 localStorage 中是尽可能安全的(诚然,这不是很安全。再说一次,如果您的登录没有发生在 HTTPS 上,我会更担心密码在那里泄漏而不是从设备泄漏本身)。您可以使密码更难找到,而不是调用变量“用户名/密码”,在 javascript 中加密它们,混淆您的代码。但最终,只要正确访问设备,就可以毫不费力地检索它们。

打包为原生应用后,您有更多选择,例如 iOS 钥匙串:http ://shazronatadobe.wordpress.com/2010/11/06/ios-keychain-plugin-for-phonegap/

于 2012-10-15T13:59:30.817 回答