Pub*_*cus 15 security local-storage cordova
我的应用需要登录,而且我有Remember username and password能力.然后存储用户名和密码
localStorage.setItem('username',username);
这种存储用户名和密码的方式有多安全?我特别在Android上担心的是,如果其他应用程序可以访问数据并且可以获取登录信息.
该应用程序适用于iOs和Android,我正在使用PhoneGap 2.9.
ste*_*eak 17
LocalStorage在正常情况下只能由您的应用访问.它与特定平台(iOS,Android)上的沙箱一样安全,能够保护您的应用程序的数据不被其他应用程序读取.
有时沙箱不像您期望的那样强大,例如在这些情况下:
如果攻击者可以访问明文密码和用户名,他们也可以尝试使用其他帐户(而不仅仅是您的服务).因此,如果您的应用的用户对多个服务使用相同的密码,则攻击者也可以访问它们.
那么存储密码哈希呢?
对于服务器端应用程序,这是一个好主意,因为它们在受保护的环境中运行(具有访问控制的数据中心,系统工程师负责安全更新).
另一方面,电话很容易被盗,用户通常不会或不能安装安全更新.
如果散列没有加密,那么如果你得到哈希,很容易使用彩虹表获得明文密码.如果哈希被腌制,则很容易获得简单密码的明文密码.此外,生成不安全的密码哈希非常容易.
解决方案:存储随机生成的访问令牌:无论密码多么简单或复杂,通过查看令牌都无法获得明文密码.
TL; DR
如果您使用的凭据进行身份验证对某种API服务的,你应该不保存用户名和密码在本地,甚至在安全存储器中,如iOS的钥匙串.
你应该做的只是存储一个从API获得的随机生成的令牌(不是密码哈希!)(类似于在cookie中存储会话ID而不是用户/传递组合的概念).一种可能性是使用OAuth.
这样,即使沙盒无法保护数据或手机被盗,您也可以确保真正的凭据永远不会被泄露.
| 归档时间: |
|
| 查看次数: |
9865 次 |
| 最近记录: |