【问题标题】:How to check if website was loaded securely如何检查网站是否已安全加载
【发布时间】:2017-07-19 11:56:11
【问题描述】:

我想知道有什么方法可以在 JavaScript 中检查网站已完全安全加载,并且没有在用户网站上修改(例如通过恶意插件)

我发现这些恶意插件经常通过添加广告或其他恶意脚本来破坏 SSL,因此我想知道如何检测混合内容警告,例如显示在此图像上: (图片取自https://www.ssl2buy.com/wiki/fix-mixed-content-nonsecure-items-error-on-ssl-secure-site)

我发现了以下问题,但我认为这些问题并不能完全回答我的问题:

我的问题是如何检测网站是否加载不安全(或在用户端修改),即使使用的协议是https://

旁注:我知道这样的脚本可以很容易地被添加恶意脚本/广告/等的插件删除,但是我更喜欢有额外的安全层。

【问题讨论】:

  • 我不确定这是否可能。它超出了 JavaScript 的能力。
  • 我明白了,这是我在问这个问题时所期待的。但是,我将把问题留在这里,以防有人能找到解决这个问题的天才方法
  • SSL 没有损坏,页面由多个请求的多个资源组成,并且并非全部都是 SSL。仔细阅读邮件。
  • @zaph:当然它实际上并没有破坏 SSL,而是对 DOM 的操作,尤其是混合内容启用了中间人攻击,因此绕过了底层安全概念。我想这是作者试图解决的问题,在我看来这是一个有效的问题。

标签: javascript security ssl


【解决方案1】:

我想知道有什么方法可以检查 JavaScript 网站已完全安全加载

假设一个恶意插件能够操纵你的 DOM 内容,我相信你不能。

不过,您可以检查页面是否加载时完全加密。

这样做的一种方法是检查 A) 当前 URL 和 B) DOM 中所有 href 和 src 属性的协议。 但这并不能证明您的页面已完全安全加载。它可能只确认您网站上所有加载的内容都已加密,但攻击者可以(而且他们确实可以)获得 TLS/SSL 证书(例如使用letsencrypt)并使用HTTPS简单地分发其恶意代码。 此外,您还必须检查您的 DOM 中是否存在 iFrame,这些 iFrame 也可能会执行恶意代码。

您可以做的唯一可能解决此问题的方法是检查上面提到的所有 href 和 src,并另外将它们与白名单进行比较。

最终,正如您已经提到的,您的脚本很容易被恶意插件阻止。因此,我不相信这样的脚本值得花时间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-27
    • 1970-01-01
    • 1970-01-01
    • 2010-12-20
    • 1970-01-01
    • 2014-06-29
    相关资源
    最近更新 更多