我在基于 Ionic 3 的项目中使用 cordova 插件进行 SSL 固定 cordova-plugin-advanced-http
根据其文档,我们必须通过 Hostname
在 setHeader()
功能,以便将其与特定主机联系起来。
我已经完全做到了并添加了 Hostname
在 setHeader()
函数并在运行时检查以从 setHeader()
调用不同的 URL字段并且它不允许它通过,因此确认 SSL 固定与匹配 Hostname
正常工作
intitializeSSLPinning() {
this.http.setRequestTimeout(60);
this.http.setDataSerializer('json');
this.http.setSSLCertMode('pinned');
this.http.setHeader('https://www.example.com:443', 'Content-Type', 'application/json');
}
但在 Veracode 应用程序安全报告中提出了一个中等级别的问题
Improper Validation of Certificate with Host Mismatch
The failure to validate host-specific certificate data may mean that, while the certificate read was valid, it was not for the site originally requested.
有人可以帮我确定是生成虚假错误报告的工具,还是我遗漏了任何东西 w.r.t 在我的应用程序中正确实现 SSL Pinning。
最佳答案
我实际上不明白您要实现的目标。 setHeader()
方法用于设置全局 header 。它与 SSL 固定功能无关。
如果您真的想设置 header 值,则需要提供主机名,而不是 URL。在您的情况下,它应该是 this.http.setHeader('www.example.com', 'Content-Type', 'application/json');
关于cordova - Ionic 3 cordova-plugin-advanced-http 主机不匹配问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57306042/