use*_*768 6 javascript browser xmlhttprequest mixed-content secure-context
假设下面的页面是从https://127.0.100.1. 该页面作出了XMLHttpRequest 到http://127.0.100.2。这似乎是混合内容:页面通过安全连接加载,资源通过不安全连接加载。浏览器应阻止混合内容。然而,下面的页面工作正常。* 为什么工作:为什么请求没有被阻止?
更新:除了已接受的答案之外,还可以将浏览器配置为阻止此类地址的混合内容。
* Wireshark 确认浏览器未通过安全连接加载资源。
<html>
<body>
<img id="dst"/>
<script>
let xhr = new XMLHttpRequest();
xhr.open('get', 'http://127.0.100.2/img.jpg');
xhr.responseType = 'blob';
xhr.onload = function(){
document.getElementById('dst').src = URL.createObjectURL(xhr.response);
}
xhr.send();
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
http://127.0.100.2/img.jpg不被视为混合内容,因为混合内容规范将其定义为先验认证 URL的特例,因为它在 127.0.0.0 - 127.255.255.255 范围内(即,具有 CIDR 符号的主机 127.0.0. 0.0/8),根据 Secure Contexts 规范定义为安全上下文——即使协议不是 https。
同样适用于http://localhost/img.jpg或http://foo.localhost/img.jpg
| 归档时间: |
|
| 查看次数: |
262 次 |
| 最近记录: |