繁体   English   中英

xamarin 中的外部存储漏洞

[英]External Storage vulnerability in xamarin

安全扫描报告显示消息为:移动应用程序可以读取或写入模式访问外部存储(例如 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">

请帮忙解决这个问题

您正在使用公共外部文件 公共文件是存在于外部存储上的文件,这些文件不存储在 Android 为私有文件分配的目录中。 卸载应用程序时不会删除公共文件。

您可以尝试使用私有外部文件

私有外部文件被认为是特定于应用程序的(类似于内部文件),但出于多种原因(例如对于内部存储而言太大)而被保存在外部存储中。 与内部文件类似,当用户卸载应用程序时,这些文件将被删除。 通过调用以下方法可以找到私有外部文件的主要位置:

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

您还可以使用目录DirectoryDownloads(PRIVATE_EXTERNAL_STORAGE/Download)

有关更多详细信息,您可以查看: 私有外部文件

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM