【问题标题】:check if page is served securely over https [duplicate]检查页面是否通过 https 安全地提供 [重复]
【发布时间】:2020-05-02 12:24:48
【问题描述】:

我正在创建一个向网站公开额外 API 的 chrome 扩展程序。在网站可以使用这些 API 之前,如果网站是通过 HTTP 而不是 HTTPS 提供的,我想显示一个警告。这是因为这些 API 减少了网络沙箱,如果来自网站的 JavaScript 源未经验证来自正确的一方,则可能会更加危险。

有没有一种可靠的方法可以用来检查网站是否通过 HTTPS 提供服务?
也许是 chrome 扩展 API(例如在内容脚本中)?

如果证书出现问题,检查location.protocol 似乎可能不准确:How do I determine whether a page is secure via JavaScript?

【问题讨论】:

    标签: javascript security secure-context


    【解决方案1】:

    对于较新的浏览器:

    window.isSecureContext
    

    您还可以:

    window.location.protocol == 'https:'
    

    但是,如果网页协议是 https 但证书无效并且网页继续在非安全上下文中加载,这可能是错误的。

    【讨论】:

    • 还有一个与扩展相关的用例可以从 window.isSecureContext 中受益——编写一个通用库,可以在包括后台脚本的扩展页面中使用(这些都是安全的)。但是这样的库当然必须实现对旧版本浏览器的协议检查的回退。
    猜你喜欢
    • 2011-03-27
    • 2016-10-01
    • 2012-05-25
    • 2010-09-29
    • 2013-09-20
    • 2012-02-29
    • 2011-05-17
    • 1970-01-01
    • 2013-12-27
    相关资源
    最近更新 更多