任何人都可以确认带有Flutter的documents directory file storage method是否安全,或AppData目录是否是Android存储其内部存储文件的位置?
我正在考虑在设备上存储一些持久性本地数据,但我想确保我写的数据不是纯文本或任何人/任何其他人都可以访问。如果这是一个常规的Android应用程序,我会使用Android Internal Storage,它表示存储的数据对应用程序是私有的,而其他应用程序无法访问它们(用户也无法访问) 。当用户卸载您的应用程序时,将删除这些文件。"
Flutter有自己的平台无关的方式来读取和写入文件,它的文档说保存文件目录存储文件只有它可以访问。只有在删除应用程序时,系统才会清除目录。在iOS上,这对应于NSDocumentsDirectory。在Android上,这是AppData目录。"
看起来这些都在谈论同样的事情,因此符合我的安全标准,但这些是我不太熟悉的事情,我不想冒险对待我的用户&# 39;数据。我试着通过Google搜索找出" AppData" Android上的目录,但大多数人都在谈论他们的Android Studio安装。
答案 0 :(得分:1)
是的,iOS上的 NSDocumentDirectory 和Android上的 AppData 是安全的位置。
示例中的这一行为您提供了存储只能由您的应用访问的文件的正确路径:
String dir = (await PathProvider.getApplicationDocumentsDirectory()).path;
在Android dir
上解析/data/data/com.yourcompany.AppName/
。在iOS设备上,该文件夹为/var/mobile/Containers/Data/APP_ID/Documents
。
检查Android Security Tips ,内部存储空间部分:
默认情况下,您可以访问在内部存储上创建的文件 仅限于您的应用。 Android实现了这种保护,它就是这样 足以满足大多数应用。
此处的例外情况是,当您的应用在有根的Android设备上运行时,应用数据文件夹不再安全,请参阅https://stackoverflow.com/a/8184699。