【问题标题】:How to Fix Vulnerabilities Issue in Android App with Ionic and Cordova如何使用 Ionic 和 Cordova 修复 Android 应用程序中的漏洞问题
【发布时间】:2019-08-12 13:56:29
【问题描述】:

我用 MobSF 分析了一个 apk,发现了很多漏洞问题,但我不知道如何修复它。

android.permission.REQUEST_INSTALL_PACKAGES dangerous
android.permission.WRITE_EXTERNAL_STORAGE dangerous
android.permission.CALL_PHONE dangerous
android.permission.WAKE_LOCK dangerous

【问题讨论】:

    标签: android cordova security ionic-framework android-permissions


    【解决方案1】:

    这些不是漏洞。它们被称为“危险”权限,因为它们允许您执行可能损害用户隐私的事情。危险的权限要求您在运行时请求权限,而不仅仅是在 Manifest 中。

    我会删除您实际上不使用的任何内容。 REQUEST_INSTALL_PACKAGES 特别令人担忧,很少需要它。但是,如果您确实需要这些功能来运行,那么没有问题。

    【讨论】:

    • 我明白,但我需要停用其中的一些,但我不知道怎么做。
    • 转到 AndroidManifest.xml。删除您要删除的权限的 标记。
    • 当我使用 Ionic 编译我的代码时,我的 AndroidManifest 会自动构建。
    • 真的我认为我需要知道权限是在哪里添加的,并从原点停用。也许来自一些 Cordova 插件
    【解决方案2】:

    我在构建中使用挂钩解决了我的问题。此脚本删除特定权限:

    var permissionsToRemove = [ "WRITE_EXTERNAL_STORAGE", "READ_EXTERNAL_STORAGE", "WAKE_LOCK", "REQUEST_INSTALL_PACKAGES" ];
    
    module.exports = function(context) {
      const platformRoot = path.join(context.opts.projectRoot, 'platforms/android/app/src/main');
      const manifestFile = path.join(platformRoot, 'AndroidManifest.xml');
    
      if (fs.existsSync(manifestFile)) {
        fs.readFile(manifestFile, 'utf8', function (err, data) {
          if (err) {
            throw new Error('Unable to find AndroidManifest.xml: ' + err);
          }
    
          let result = data;
    
          for (var i=0; i<permissionsToRemove.length; i++) {
            result = result.replace( "<uses-permission android:name=\"android.permission." +       permissionsToRemove[i] + "\" />", "" );
          }
        });
      }
    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-09
      • 1970-01-01
      • 2020-02-21
      • 1970-01-01
      • 1970-01-01
      • 2013-06-13
      • 2019-11-13
      • 2022-11-09
      相关资源
      最近更新 更多