Lis*_*nne 2 security passwords android
请问我有以下场景:
该应用程序使用密码通过 HTTPS 访问某些远程 Web 服务;
为此,应用程序会询问用户密码,但不会将其存储在设备上(并以安全的方式使用它来访问网络服务)。
我担心的是:理论上可以访问内存以读取其中包含的数据并最终检索密码。
请问我该如何防止这种情况发生?
谢谢
请问我该如何防止这种情况发生?
我戴锡箔帽是出于职业目的(而且,我认为它们看起来很漂亮……),这超出了我通常担心的范围。我担心您的 HTTPS 代码不会成为中间人 (MITM) 攻击的受害者,因为这对于攻击者来说更容易执行。
话虽如此,正如 samgak 在评论中提到的那样,String
这是一成不变的。一旦密码出现在 a 中String
,您就会面临所描述的攻击的风险。
如果您使用 anEditText
来收集密码,则不要调用getText().toString()
来获取用户输入的内容。getText()
将返回一个Editable
,它允许您获取字符,而不是一个String
。然后,如果您的 HTTP 客户端 API 允许您使用 a 填写密码char[]
,那么一旦 HTTP 请求完成,您可以清除char[]
、clear()
the的内容Editable
,然后祈祷EditText
和 kin 不会持有String
代表任何地方用户输入的内容。这可能因设备而异,因为设备制造商长期以来一直在搞行为EditText
,因此在 AOSP 代码方面可能干净的东西在某些制造商的硬件上可能不太干净。
如果您通过其他方式获取密码(例如,您自己的一组 PIN 输入按钮),请避免显示结果,并在完成后String
擦除。char[]
归档时间: |
|
查看次数: |
1923 次 |
最近记录: |