【问题标题】:Is loading scripts or other resources via HTTPS on a HTTP page problematic?在 HTTP 页面上通过 HTTPS 加载脚本或其他资源是否有问题?
【发布时间】:2013-12-29 06:36:26
【问题描述】:

我知道protocol-relative URLs,这通常是在可能使用 HTTP 或 HTTPS 加载的页面上提供脚本或其他资源的正确解决方案。

但是,我有一个脚本,我希望始终通过 HTTPS 提供服务,即使它加载到的页面是通过 HTTP 提供的。抛开混合 HTTP 和 HTTPS 内容的明显潜在安全问题(即,理论上可以使用对通过 HTTP 服务的某些脚本的 MITM 攻击来注入用于从通过 HTTPS 服务的脚本中读取内容的漏洞代码),这是一个坏事吗?出于任何其他原因的想法?例如,这会在任何旧版本的 IE 中导致混合内容警告吗?

【问题讨论】:

  • 我知道一个缺点:在我的 Android 2.1 上,这样的页面在加载过程中往往会随机显示证书弹出窗口。这很烦人,并且会延迟此类页面的可用性。 HTTPS 的初始化也不快(取决于硬件......)只是不要。我们能知道那个剧本有什么秘密吗?也许如果您解释了您要隐藏的内容,那么 JS 实现的加密方法会更合适。例如,如果有密码比较,脚本可以使用哈希来验证它们而不泄露。

标签: html http ssl browser https


【解决方案1】:

不!至少,不是在任何仍然流行的浏览器上。

Paul Irish(谷歌浏览器的开发者之一,知名的编程博主和开源贡献者)在 2014 年更新他 2010 年的博文The Protocol-relative URL(强调来自原文)中提出了以下建议:

既然 SSL 是 encouraged for everyonedoesn’t have performance concerns这种技术现在是一种反模式。如果您需要的资产在 SSL 上可用,则始终使用 https:// 资产。

允许 sn-p 通过 HTTP 请求为 recent Github Man-on-the-side attack 等攻击打开了大门。即使您的网站在 HTTP 上,请求 HTTPS 资产总是安全的,但反过来 is not true

Eric Mills’ guide to CDNs & HTTPS 中的更多指导和详细信息。

如果 Paul Irish 说在 HTTP 页面上请求 HTTPS 资产没问题,那对我来说已经足够了。

【讨论】:

    猜你喜欢
    • 2014-01-09
    • 2012-09-26
    • 2015-03-25
    • 1970-01-01
    • 2017-02-16
    • 1970-01-01
    • 2014-09-06
    • 2019-01-03
    相关资源
    最近更新 更多