1

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

4

2 回答 2

1

编辑:

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

于 2021-11-09T07:57:04.593 回答
0

我遇到了类似的问题。解决方案非常简单。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();
于 2022-03-04T10:34:44.743 回答