【问题标题】:Default HostnameVerifier默认主机名验证器
【发布时间】:2020-04-07 09:38:20
【问题描述】:

我正在浏览下面的文章- https://developer.android.com/training/articles/security-ssl 并在文本下方找到-

如果另一个虚拟主机替换 HostnameVerifier 可能会非常危险 主机不受您的控制,因为中间人攻击 可以在您不知情的情况下将流量定向到另一台服务器。

如果我们没有在客户端的代码中设置urlConnection.setHostnameVerifier(hostnameVerifier);,那么客户端是否有任何默认的主机名验证器,因为文档谈到替换主机名验证器?如果是,默认主机名验证器如何工作?

【问题讨论】:

  • 请注意,Google 支持常见问题解答reads如果您对该漏洞有技术问题,可以发布到 Stack Overflow 并使用标签“android-security”。如需了解解决此问题所需采取的步骤,您可以联系我们的开发人员支持团队。

标签: android ssl hostname android-security


【解决方案1】:

是的,如果您没有设置自定义主机名验证器,HttpsUrlConnection 将使用 DefaultHostnameVerifier OkHostnameVerifier

这实际上是最佳实践——将此验证留给平台。

合法的例外情况可能是您在默认验证器之上添加额外的保护层,例如当你想强制执行某种自定义时 证书固定(但你为什么不关注不涉及这个的best practices?)。

在极少数情况下,您可能希望稍微放松一下默认检查,例如如果你只是like Googlefew years ago,有一些子域没有SNI,必须作为主域处理。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-02
    • 1970-01-01
    • 2015-08-07
    • 2015-08-25
    • 2020-11-15
    • 2013-01-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多