Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security 如何保护我的Flatter移动应用程序?(颤振App穿透测试结果)_Security_Flutter_Penetration Testing - Fatal编程技术网

Security 如何保护我的Flatter移动应用程序?(颤振App穿透测试结果)

Security 如何保护我的Flatter移动应用程序?(颤振App穿透测试结果),security,flutter,penetration-testing,Security,Flutter,Penetration Testing,从哪里可以获得颤振应用程序安全文档或最佳实践?我几乎准备好发布我的应用程序了。 我使用在线(免费版)并检查我的应用程序的安全性 我上面有一个主要问题,下面还有一些问题 如何禁用调试模式 如何禁用备份模式 如何在AndroidManifest或类似文件中阻止我的google map api密钥 这些是我面临的安全问题。 --------------------------------- 已启用高调试模式 说明 应用程序以调试模式编译,允许攻击者附加调试器以访问敏感数据或执行恶意操作。攻击者可以

从哪里可以获得颤振应用程序安全文档或最佳实践?我几乎准备好发布我的应用程序了。 我使用在线(免费版)并检查我的应用程序的安全性

我上面有一个主要问题,下面还有一些问题

  • 如何禁用调试模式
  • 如何禁用备份模式
  • 如何在AndroidManifest或类似文件中阻止我的google map api密钥
这些是我面临的安全问题。 ---------------------------------

已启用高调试模式 说明

应用程序以调试模式编译,允许攻击者附加调试器以访问敏感数据或执行恶意操作。攻击者可以在不访问源代码的情况下调试应用程序,并利用它代表用户执行恶意操作,修改应用程序行为或访问敏感数据,如凭据和会话cookie

建议

通过在应用程序标记中将属性android:debuggeable设置为false来禁用调试模式。

参考资料 •DRD10-J不释放可调试的应用程序(证书安全编码)

Ex:AndroidManifest:

<activity android:name="com.apptreesoftware.mapview.MapActivity" android:theme="@7F0C0102"> </activity>
<meta-data android:name="com.google.android.maps.v2.API_KEY" android:value=“****************************”></meta-data>
<meta-data android:name="com.google.android.gms.version" android:value="@7F080004"></meta-data>

----------------------------

可能启用备份模式 说明

Android默认执行应用程序的完整备份,包括存储在/data分区上的私有文件。Backup Manager服务将这些数据上传到用户的Google Drive帐户

建议

如果应用程序包含不希望还原的敏感数据,可以通过在应用程序标记中将属性android:allowBackup设置为false来禁用备份模式

参考资料 •M开发者预览版上的随机思考:丑陋(第二部分) •DRD22。不要缓存敏感信息

----------------------------

可能在没有权限的情况下声明服务 说明

服务是一个应用程序组件,可以在后台执行操作,而无需用户交互。服务还可用于向其他应用程序公开功能。这对应于对Context.bindService()的调用,以建立到服务的连接并与之交互。 其他应用程序可以调用未受保护的服务,并可能访问敏感信息或执行特权操作

建议

服务可以向外部组件公开多个方法。可以使用方法checkPermission为每个方法定义任意权限。 还可以通过在清单的标记中强制使用权限来分离服务和限制访问

<permission android:name="co.ostorlab.custom_permission" android:label="custom_permission" android:protectionLevel="dangerous"></permission>
<service android:name="co.ostorlab.custom_service" android:permission="co.ostorlab.custom_permission">
    <intent-filter>
        <action android:name="co.ostorlab.ACTION" />
    </intent-filter>
</service>

该服务可以通过在执行单个IPC调用的实现之前调用checkCallingPermissions方法来强制执行该调用的权限

参考资料 •CWE-280:不当处理权限或特权不足 •通过不受信任的输入做出安全决策(OWASP Mobile Top 10) •服务(Android开发者文档)

技术细节 假阳性 AndroidManifest.xml中的服务定义:

<service android:name="com.mobile.niyazibank.MyFirebaseMessagingService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT">
</action>
</intent-filter>
</service>
<service android:name="com.mobile.niyazibank.MyFirebaseInstanceIDService">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT">
</action>
</intent-filter>
</service>
<service android:name="io.flutter.plugins.firebasemessaging.FlutterFirebaseInstanceIDService">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT">
</action>
</intent-filter>
</service>
<service android:name="io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT">
</action>
</intent-filter>
</service>
<service android:exported="true" android:name="com.google.firebase.messaging.FirebaseMessagingService">
<intent-filter android:priority="-500">
<action android:name="com.google.firebase.MESSAGING_EVENT">
</action>
</intent-filter>
</service>
<service android:exported="true" android:name="com.google.firebase.iid.FirebaseInstanceIdService">
<intent-filter android:priority="-500">
<action android:name="com.google.firebase.INSTANCE_ID_EVENT">
</action>
</intent-filter>
</service>

--------------------

重要导出活动、服务和广播接收器列表 说明

应用程序中所有导出组件的列表。导出的组件可供外部应用程序访问,并为应用程序提供入口点

建议

本条目仅供参考,不适用任何建议

参考资料 •内容提供商(Android开发者文档) •活动(Android开发者文档) •广播接收器(Android开发者文档)
•服务(Android Developer文档)

您是否上传了
版本或
apk
的调试版本以检查安全性

flatterbuild--release
将生成发布版本apk

另外,请在此处阅读更多信息:

您确定flatter build--release命令将为您的应用程序生成一个发布版本,如果您只想在测试时从应用程序中删除调试横幅,则 在MaterialApp上,将debugShowCheckedModeBanner设置为false

材料聚丙烯( debugShowCheckedModeBanner:false ) 调试横幅也将在发布版本时自动删除