我正在开发一个应用程序,我想知道存储配置文件的最佳方式是什么。现在,我计划使用 JSON 文件并将其另存为资产。但是,该文件很重要\xef\xbc\x8cit 不应该被其他人访问。
\njon*_*ges 11
我是网络安全方面的专家,我有一些考虑要说。首先,你不可能完全阻止攻击者访问敏感信息,你所能做的就是让它变得困难,通常需要数年时间才能成功,但没有什么是 100% 安全的逆向攻击工程。
第二个考虑因素是:只有一种方法可以从托盘中向攻击者提供数据,并且它可以被认为是保存敏感数据的最容易受到攻击的方法:保存到资产,在 json 文件中。你提到这件事似乎很讽刺。
Json 是现有的最人类可读的语言(并且不可能失去这个位置,读取引号中的文件及其值:即使对于那些不编程的人来说也是直观的),如果它位于资产文件夹中,编译后它将是一个完全不受保护的文件,无需反编译apk,只需使用任何文件滚轮即可提取该文件。这实际上是在说:查看并阅读我的文件,我求你了。
敏感数据必须存储在 Android 上的密钥库上,以及 iOS 上的钥匙串上。有一个 Flutter 插件可以为您抽象这一点(https://pub.dev/packages/flutter_secure_storage)。
作为网络安全专家,我需要告诉你,即使这样存储,你也不会100%安全,事实上,这种级别的安全性是不存在的。但我建议至少需要做一些工作并消除 99% 想要破坏您的应用程序的人:
将 json 转换为 String,并以加密的 FSS 形式保存,无需明文。当您需要该文件时,获取生成的字符串,解密它,然后将其转回 json。请记住,加密密钥也必须存储,或者如果您要将其放入代码中,请不要使用纯文本,请提前对其进行加密,或者至少将其转换为 base64(这不是安全性,它会只会使字面搜索变得困难),最后,不要使用“token”、“secure”、“secret”等词作为关键字,因为这些是第一个搜索的词。测试一些完全不寻常的东西,直到有一天我才使用木兰(我在这里计数,因为我改变了)。
| 归档时间: |
|
| 查看次数: |
2331 次 |
| 最近记录: |