flutter-将Json配置文件另存为flutter中的资产是否安全? 由 matque发布于 2020-05-09 12:59:23 我正在开发一个应用程序,我想知道什么是存储配置文件的最佳方法。现在,我计划使用JSON文件并将其另存为资产。但是,该文件很重要,不应被其他人访问。
我是网络安全方面的专家,我有一些考虑要说。首先,您不可能完全阻止攻击者访问敏感信息,您所能做的就是使它变得困难,往往要花很多年才能成功,但是没有100%的安全可以逆转工程。
第二个考虑因素是:只有一种方法可以从托盘中提供攻击者数据,并且可以将其视为保存敏感数据的最易受攻击的方法:保存到json文件中的资产。提及您似乎很讽刺。
Json是现存最易读的语言(如果位于资产文件夹中,就不可能失去这个位置,使用引号及其值读取文件是很直观的,即使对于那些不编程的人也很直观),编译后,它将是一个完全不受保护的文件,可以使用任何文件滚轮将其提取而无需反编译apk。这实际上是在说:看我的文件,我求你了。
Sensitive data must be stored on the android on the keystore, and on iOS on the Keychain. There is a Flutter plugin that abstracts this for you (https://pub.dev/packages/flutter_secure_storage).
作为网络安全专家,我需要告诉您,即使这样存储,您也将100%安全,实际上,此级别的安全性不存在。 但是,我建议这样做至少可以完成一些工作,并消除希望破坏您的应用程序的99%的人:
将json转换为String,然后将其保存在加密的FSS中,而无需输入纯文本。需要文件时,请使用生成的字符串,将其解密,然后将其转换回json。 请记住,还必须存储加密密钥,或者如果要将其放入代码中,请不要使用纯文本对其进行加密,事先对其进行加密,或者至少将其转换为base64(这不是安全性,它会只会使文字搜索变得困难),最后,请勿使用“ token”,“ secure”,“ secret”等词作为关键字,因为这些词是搜索的第一个单词。测试一些完全不寻常的东西,直到这些天之一,我才使用木兰(我在这里数是因为我改变了)。