如何在 Flutter 上禁用 SSL Pinning?

How to disable SSL Pinning on Flutter?

我们正在使用 Flutter 进行应用程序开发。我们的安全测试人员说我们需要在 Flutter 代码中禁用 SSL Pinning,这样他们就可以 运行 进行一些测试。我们做不到。我们使用 Dio 包进行 HTTP 请求。我们如何在 Flutter 上禁用 SSL Pinning?

编辑:

SSL Pinning 不是默认行为。因此,如果尚未启用,则无需禁用它。

我遇到了类似的问题。解决方案非常简单。 http包自动阻止网络监听

要解决此问题并重新提交以进行渗透测试,请对 main.dart 文件进行以下更改:

class MyHttpOverrides extends HttpOverrides {
  @override
  HttpClient createHttpClient(SecurityContext context) {
    if (Platform.isAndroid) {
      return super.createHttpClient(context)..badCertificateCallback = (X509Certificate cert, String host, int port) => true;
    }

    return super.createHttpClient(context)
      ..findProxy = (uri) {
        return "PROXY localhost:8080";
      }
      ..badCertificateCallback = (X509Certificate cert, String host, int port) => true;
  }
}

并在 main() 方法中添加这一行:

  HttpOverrides.global = MyHttpOverrides();