【问题标题】:How to display certificate of HTTPS request in embedded WebView如何在嵌入式 WebView 中显示 HTTPS 请求的证书
【发布时间】:2011-09-28 22:14:58
【问题描述】:

在我的 Mac OS X 应用程序中,我使用嵌入式 WebView 为不同的服务进行 OAuth 登录。他们中的大多数使用 HTTPS 请求显示在 WebView 中的授权表单。

现在我需要像在 Safari 中一样显示一个小锁,只要连接安全。单击该锁应打开一个SFCertificatePanel,其中显示用于该请求的证书。

这可以在 OS X 的 WebView 中完成吗?我检查了所有代表,但没有找到发送给他们以显示该锁定图标或获取证书的可用消息。

感谢您的帮助!

【问题讨论】:

  • 不确定这是否是最佳解决方案,但也许您可以使用 CFNetwork API 自己加载页面并使用this answer 中的代码 sn-p 获取证书。
  • 感谢您的提示!使用 CFNetwork 有效。这是一个很好的解决方法。但是代表们应该工作。这里是 Apples 开发者论坛中的主题:devforums.apple.com/message/548415#548415(需要登录和 Mac 开发帐户)

标签: macos cocoa https webview certificate


【解决方案1】:

对我来说,这听起来像是一个非常可疑的想法。考虑到可能的用户行为和用户理解(例如,用户对安全性的心理模型),我怀疑它在实践中并不安全。

这是核心问题。您的应用程序窗口中没有任何地方可以显示用户可以信任的锁,用户会理解并知道是不可欺骗的,并且用户知道要集中注意力。恶意网站很容易在其页面上包含锁定图标的图像,这可能会使用户误以为 HTTPS 已被使用,而实际上并未使用。恶意网站甚至可以使图标可点击,如果用户点击它,就会弹出欺骗性的证书信息。大多数用户没有希望检测到此类攻击。

相反,如果您知道某个特定站点需要使用 HTTPS,我建议您使用 https:// URL 加载原始 URL。由于您指定了要在 WebView 中加载的 URL,因此您知道它将使用 SSL。据我所知,这实际上是您在应用程序中所能做的最好的事情。至少,鉴于此处指定的问题描述,我想不出更好的方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-18
    • 2014-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多