gpt4 book ai didi

android - 使用共享首选项进行持久登录,是漏洞吗?

转载 作者:太空宇宙 更新时间:2023-11-03 12:39:22 26 4
gpt4 key购买 nike

最近我发现很多 Android 应用使用共享首选项进行持久登录,此类应用需要用户提供用户名和密码才能首次登录,但此后不需要用户进行任何其他操作。

在极少数情况下,该应用程序会将密码存储在 shared_prefs 文件夹下的 login_account.xml 等文件中,一旦用户 root 了他的 Android 手机,其他恶意应用程序可能会读取该文件以获取用户密码。

在大多数情况下,我发现应用程序会在 shared_prefs 文件夹的 login_account.xml 中存储一个登录 key (而不是密码),这似乎是安全的,因为恶意应用程序无法窃取密码。但它仍然可以获得受害者的登录状态,因为他可以用受害者的登录 key 替换他的登录 key 。

我想知道是否有某种方法可以既保护我们的用户免遭登录 key 被盗不要求我们的用户输入他的密码每次加载我们的应用程序的密码

最佳答案

设备本质上是不安全的,因此无论您做什么,“邪恶的家伙”总是有可能做某事。绝对没有解决办法。但是,您可以按照 Chirag Raval 的建议在一定程度上降低风险:只存储登录和登录成功的事实。我会添加到仅在有限时间内“自动”登录,然后再次显示登录对话框以重新确认密码。

您可以通过生成手机签名、在第一次登录时发送它并让服务器发送一个响应字符串来提高安全性,您可以在以后登录时使用该字符串。由于很难猜测,它不会在另一部手机上工作并且仍然需要密码,因此它会有点安全。要生成这样的签名,我会连接来自 Build 类的大量字段值、电话的 ID 以及可能在 TelephonyManager(家庭网络)中获得的值,然后从中生成摘要。最安全的方法是使用 SHA-1 HMAC(查看 Bouncy caSTLe 库)。

当然,这一切都无法对抗专门的对手:他可以将调试器附加到您的应用程序,跟踪其所有调用并找出签名算法。那是因为该设备不安全,正如我在顶部所写的那样。 (PS:当客户正在测试应用程序的安全性时,这实际上发生在我身上)。

关于android - 使用共享首选项进行持久登录,是漏洞吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11519154/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com