HTTPS以外的“安全来源”吗?

时间:2018-08-22 01:14:55

标签: google-chrome security https google-chrome-devtools

有时我会在Chrome Devtools中看到此警告:

You should consider switching your application to a secure origin, such as HTTPS.

这是怎么回事,例如HTTPS?除了HTTPS之外,您可以为网站提供服务的“安全来源” 以外吗?

我使用https没问题(我正在使用的所有网站上都启用了https)。这个问题纯粹出于好奇。

2 个答案:

答案 0 :(得分:4)

简短的回答:是的,localhost是安全来源。 Chrome浏览器还有一个命令行标志,用于将指定的HTTP端点视为安全的--unsafely-treat-insecure-origin-as-secure=http://a.test,http://b.test。因此,这不是 just “ HTTPS”。

更长的答案:其他方案,例如blob:wss:chrome-extension:也可以视为安全上下文。 about:blank是一个常见示例,可能会有所不同,因为浏览器必须记住它是如何到达那里的。并且iframe指向HTTPS页面但嵌入在HTTP页面中,将是不安全的。

要确定浏览器如何看待所有这些,请检查window.isSecureContext的值。规范在这里:https://w3c.github.io/webappsec-secure-contexts/

此铬页https://sites.google.com/a/chromium.org/dev/Home/chromium-security/deprecating-powerful-features-on-insecure-origins提供了一些上下文信息并链接到上述规范。

例如,data: URL是不安全的,但是blob: URL是安全的。

const src = "<script>document.write(isSecureContext)</scr"+"ipt>";

a.src = `data:text/html,${src}`;

b.src = URL.createObjectURL(
  new Blob([src], {type:'text/html'}));
<p>data url is insecure
<iframe id=a width=100 height=25></iframe>

<p>blob url is secure
<iframe id=b width=100 height=25></iframe>

答案 1 :(得分:0)

通过执行以下操作,我可以成功绕过Chrome使用https连接的要求。它与“接受的答案”中的链接中的说明稍有不同:

Windows 10:

  • 在任务栏中,右键单击“ Chrome”图标>右键单击“ Google Chrome”> 选择“属性”
  • 在“目标:”字段中,在最后一个 引号,例如:

    “ C:\ Program Files(x86)\ Google \ Chrome \ Application \ chrome.exe” --unsafely-treat-insecure-origin-as-secure = http://yourDomain.com

(我不需要添加其他答案中指示的其他标志。)

其他标签:Google Geolocation API绕过https