安全地存储在本地用户的密码在jQuery Mobile的应用(securely store user

2019-08-01 09:51发布

我需要访问它需要使用jQuery Mobile的API在每个用户的基础HTTP认证的API。

我打算使应用程序可以作为一个网站,以及在科尔多瓦包装它的各种设备。

如果我有捕获用户名和密码,这个存储为JavaScript变量登录表单,有没有什么办法这个数据可能会暴露?

如果是这样,什么是处理存储的用户认证信息的最佳替代品? 我不太愿意建立一个中间服务器,如果我没有。

非常感谢。 :d

Answer 1:

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

除了iOS版钥匙扣或者如果你编码它为增加安全性,你可以在非iPhone设备:

  • 更改访问令牌在每次登录时,每次应用程序使用
  • 存储在服务器数据库中的设备ID(见http://docs.phonegap.com/en/2.2.0/cordova_device_device.md.html#device.uuid )
  • 清除localStorage的,并要求一个新的登录如果接入令牌或设备ID不匹配存储在所述数据库中的数据

确保你不将设备ID存储在localStorage的。

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

存储在服务器数据库中的IP地址,然后检查,如果它(服务器端)匹配可能会是最安全的,因为如果有人拿到了localStorage的数据保持它不会有问题。



Answer 2:

所以,我理解你不用管,你登录到后台? 如果你这样做,我会更倾向于一次发送的用户名/密码,然后存储一些访问令牌,让你的后续访问。

如果不控制后台,你不得不拥有存储用户名/密码。 我会说,在localStorage的设置它们是安全的,因为它得到(这是无可否认的,也不是很安全。再说,如果你登录不上HTTPS发生,我会更担心密码不是从设备出现漏水本身)。 你可以使密码更难找到,不叫变量“用户名/密码”,在javascript加密它们,混淆你的代码。 但最终,他们总是可以不使用正确的访问设备太多精力检索。

包装作为本机应用程序后,你有更多的选择,比如iOS的钥匙扣: http://shazronatadobe.wordpress.com/2010/11/06/ios-keychain-plugin-for-phonegap/



文章来源: securely store user password locally in a jquery mobile app