【问题标题】:External Storage vulnerability in xamarinxamarin 中的外部存储漏洞
【发布时间】:2022-08-16 17:05:30
【问题描述】:

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

Androidmanifest.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 xamarin xamarin.forms xamarin.android


【解决方案1】:

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

您可以尝试使用Private external files

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

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

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

更多详情,您可以查看:Private external files

【讨论】:

    猜你喜欢
    • 2012-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-05
    • 2018-01-28
    • 1970-01-01
    • 2022-11-29
    相关资源
    最近更新 更多