我需要访问一个 api,它需要使用 jquery 移动 api 对每个用户进行 http 身份验证。
我计划将该应用作为网站提供,并将其打包在 Cordova 中以用于各种设备。
如果我有一个捕获用户名和密码的登录表单并将其存储为 javascript 变量,是否有任何方式可以公开这些数据?
如果是这样,处理存储用户身份验证详细信息的最佳替代方法是什么?如果没有必要,我不愿构建中间服务器。
非常感谢。 :D
最佳答案
我建议不要将用户名或密码存储在 localStorage 中,而是存储访问 token 。访问 token 可以经常更新和更改,它也不会透露用户是谁或他们的哈希密码是什么。
除了 iOS 钥匙串(keychain),或者如果您正在为非 iPhone 设备编码以增加安全性,您还可以:
- 在每次登录和每次使用应用程序时更改访问 token
- 将设备 ID 存储在服务器数据库中(参见 http://docs.phonegap.com/en/2.2.0/cordova_device_device.md.html#device.uuid)
- 如果访问 token 或设备 ID 与数据库中存储的数据不匹配,请清除本地存储并请求新登录
确保您没有将设备 ID 存储在 localStorage 中。
为了增加安全性,您还可以将用户的 IP 地址存储在数据库中并检查(服务器端)IP 地址是否匹配,但这可能太多了,因为用户每次连接到互联网时都必须登录新位置或他们的 IP 地址发生变化。
将 IP 地址存储在服务器数据库中然后检查它是否匹配(服务器端)可能是最安全的,因为如果有人掌握了 localStorage 数据并不重要。
关于javascript - 在 jquery 移动应用程序中本地安全地存储用户密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12865943/