如何在 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();
我们正在使用 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();