Gáb*_*éja 5 html javascript ssl https
有没有办法在 JavaScript 中检测网站是否使用不受浏览器信任(但被用户接受)的 SSL 证书通过 HTTPS 加载?即它是无效/过期/自签名的 SSL 证书。
window.isSecureContext并没有表明这一点,在所有情况下,如果页面是通过 HTTPS 加载的,我自己和badssl.comtrue上都会尝试过。
我的用例:我正在尝试使用 ApplicationCache,但它拒绝工作:在 Chrome 上,它会触发回调error并显示异常消息“Manifest fetch failed (9)”,在 Firefox 上,它会默默失败。
由于这意味着浏览器的行为有所不同,我希望它是可检测到的,并且我想确保在无法使用 ApplicationCache 时完全跳过它。
我不想从 JavaScript 创建单独的 SSL 连接(用户可能安装了自定义 CA 的证书等),也不想尝试使用 ApplicationCache 捕获异常。
网页无法通过不受信任的 SSL 证书加载。它可能会加载不受公开信任但用户已明确添加例外的证书 - 这意味着用户信任该证书。
看来您想知道您的网站是否加载了与服务器提供的不同的证书,即客户端和服务器之间是否有一些活跃的人,例如 SSL 拦截公司代理或本地防病毒产品。为此,您需要了解证书详细信息并将其与您的期望进行比较。不幸的是,这在纯 Javascript 中是不可能的。
有关这方面的更多信息,请参阅在 Web 浏览器中,JavaScript 是否可以获取有关当前页面使用的 HTTPS 证书的信息?,有没有办法使用 JavaScript 获取 SSL 证书详细信息?。有关在服务器端检测 MITM 的替代方法,请参阅在服务器端检测 HTTPS 的中间人或检测 HTTPS 拦截(使用 caddy Web 服务器)。
| 归档时间: |
|
| 查看次数: |
1854 次 |
| 最近记录: |