xamarin中的外部存储漏洞

ippsafx7  于 2022-12-07  发布在  其他
关注(0)|答案(1)|浏览(107)

安全扫描报告显示的消息为:移动的应用程序可以通过读写方式访问外部存储器(如SD卡)。存储在外部数据存储器上的应用程序数据在某些情况下可能会被其他应用程序(包括恶意应用程序)访问,并带来数据损坏或篡改的风险。我们使用了以下代码:

var directory = global::Android.OS.Environment.ExternalStorageDirectory.AbsolutePath;
            directory = Path.Combine(directory, Android.OS.Environment.DirectoryDownloads);
            string file = Path.Combine(directory.ToString(), WebUtility.UrlEncode(customWebView.Uri));

            var documentsPath =System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);
            var filePath1 = Path.Combine(documentsPath, WebUtility.UrlEncode(customWebView.Uri));

Andriodmanifest.xml:

<application android:label="TL" android:allowBackup="false" android:icon="@drawable/app_icon" android:requestLegacyExternalStorage="true">
    <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="AIzaSyDVTkBTiMl0e2KhzJcuCibAoykSSGEEm6E" />
    <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
    <receiver android:name="com.google.firebase.iid.FirebaseInstanceIdInternalReceiver" android:exported="false" />
    <receiver android:name="com.google.firebase.iid.FirebaseInstanceIdReceiver" android:exported="true" android:permission="com.google.android.c2dm.permission.SEND">

请帮忙整理这个问题

cdmah0mi

cdmah0mi1#

您正在使用公共外部文件。公共文件是指存在于外部存储设备上的文件,这些文件未存储在Android为私人文件分配的目录中。卸载应用时,不会删除公共文件。
您可以尝试使用专用外部文件。
私有外部文件被认为是特定于应用程序的(类似于内部文件),但由于各种原因(例如对于内部存储来说太大)而被保留在外部存储上。与内部文件类似,这些文件将在用户卸载应用程序时被删除。私有外部文件的主位置通过调用以下方法找到:

Android.Content.Context.GetExternalFilesDir(string type).

您也可以使用目录DirectoryDownloads(PRIVATE_EXTERNAL_STORAGE/Download)
有关详细信息,您可以查看:专用外部文件。

相关问题