gpt4 book ai didi

javascript - 检测是否在 javascript 中使用不受信任的 SSL 证书加载网页

转载 作者:行者123 更新时间:2023-12-04 02:01:06 27 4
gpt4 key购买 nike

有没有办法在 JavaScript 中检测网站是否使用浏览器不信任的 SSL 证书(但被用户接受)通过 HTTPS 加载? IE。它是无效/过期/自签名 SSL 证书。
window.isSecureContext不表示这个,是true在所有情况下,我都自己尝试过 badssl.com如果页面是通过 HTTPS 加载的。

我的用例:我正在尝试使用 ApplicationCache 但它拒绝工作:在 Chrome 上它会触发 error带有异常消息的回调 "Manifest fetch failed (9)" ,在 Firefox 上它会默默地失败。

由于这意味着浏览器的行为不同,我希望它是可检测的,并且我想确保在 ApplicationCache 无法使用时完全跳过它。

我不想从 JavaScript 创建单独的 SSL 连接(用户可能安装了自定义 CA 的证书等),也不想尝试使用 ApplicationCache 捕获异常。

最佳答案

无法通过不受信任的 SSL 证书加载网页。它可能会加载未公开信任但用户已明确添加异常的证书 - 这意味着用户信任该证书。

相反,您似乎想知道您的站点是否加载了与服务器提供的不同的证书,即客户端和服务器之间是否有一些活跃的人,例如 SSL 拦截公司代理或本地防病毒产品.为此,您需要了解证书详细信息并将其与您的期望进行比较。不幸的是,这在纯 Javascript 中是不可能的。

有关更多信息,请参阅 Within a web browser, is it possible for JavaScript to obtain information about the HTTPS Certificate being used for the current page? , Is there a way to get SSL certificate details using JavaScript? .有关在服务器端检测 MITM 的替代方法,请参阅 Detect man-in-the-middle on server side for HTTPSDetecting HTTPS Interception (with the caddy webserver) .

关于javascript - 检测是否在 javascript 中使用不受信任的 SSL 证书加载网页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59756537/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com