簡體   English   中英

未阻止從 HTTPS 頁面到 HTTP(非 HTTPS)本地主機地址的混合內容請求

[英]Mixed-content request from HTTPS page to HTTP (non-HTTPS) localhost address not blocked

假設下面的頁面是從https://127.0.100.1加載的。 該頁面向http://127.0.100.2發出XMLHttpRequest 這似乎是混合內容:頁面通過安全連接加載,資源通過不安全連接加載。 瀏覽器應阻止混合內容。 然而,下面的頁面工作正常。* 為什么工作:為什么請求沒有被阻止?

更新:除了已接受的答案之外還可以將瀏覽器配置為阻止此類地址的混合內容。

* 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>

http://127.0.100.2/img.jpg不被視為混合內容,因為混合內容規范將其定義為先驗認證 URL的特例,因為它在 127.0.0.0 - 127.255.255.255 (也就是說,具有 CIDR 符號 127.0.0.0/8)的主機, 根據 Secure Contexts 規范被定義為安全上下文——即使協議不是 https。

同樣適用於http://localhost/img.jpghttp://foo.localhost/img.jpg

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM