簡體   English   中英

如何從 HTTPS 網站發出 HTTP 請求?

[英]How can I make an HTTP request from an HTTPS website?

我有一個使用 HTTPS 的網站,我想向 HTTP 端口發出 GET 請求。 在我嘗試的那一刻,我收到了這些錯誤:

cannot load ${url} due to access control checks.

this page was not allowed to display insecure content from ${http-url}

我想過將請求放入 AWS lambda 函數並調用 labmda 函數,因為這會給我一個 HTTPS URL? 這可能嗎。

盡管如此,我想知道最簡單的方法是什么,因為我對 AWS 了解不多,所以我必須學習它。

const url = 'http://website/fmi/xml/fmresultset.xml?-dbnames';

var xhttp = new XMLHttpRequest(); 
xhttp.onreadystatechange = function (params) { 
  console.log(xhttp.status); 
  if (xhttp.readyState ==4) { 
    if (xhttp.status == 200) { 
      console.log('===='); 
      console.log(xhttp.responseText); 
    } 
  } 
} 
xhttp.open("GET", url, true); 
xhttp.send();

好吧,如果原始 html 頁面在 https 中並且請求資源在 http 中,瀏覽器將不會阻止任何資源(腳本、鏈接、iframe、XMLHttpRequest、fetch)下載。

瀏覽器拋出Mixed Content錯誤。

摘自 Mozilla MDN

混合活動內容是可以訪問 HTTPS 頁面的全部或部分文檔對象模型的內容。 這種類型的混合內容可以改變 HTTPS 頁面的行為,並可能竊取用戶的敏感數據。 因此,除了上述混合顯示內容的風險外,混合活動內容還容易受到其他一些攻擊媒介的攻擊。

在混合活動內容的情況下,中間人攻擊者可以攔截對 HTTP 內容的請求。 攻擊者還可以重寫響應以包含惡意 JavaScript 代碼。 惡意活動內容可以竊取用戶的憑據、獲取有關用戶的敏感數據或嘗試在用戶系統上安裝惡意軟件(例如,通過利用瀏覽器或其插件中的漏洞)。

混合內容所涉及的風險取決於用戶訪問的網站類型以及暴露於該網站的數據的敏感程度。 該網頁可能具有全世界可見的公共數據或僅在經過身份驗證時才可見的私有數據。 如果網頁是公開的並且沒有關於用戶的敏感數據,使用混合活動內容仍然為攻擊者提供了將用戶重定向到其他 HTTP 頁面並從這些站點竊取 HTTP cookie 的機會。

有用的文檔鏈接

MDN - https://developer.mozilla.org/en-US/docs/Web/Security/Mixed_content

Google 開發人員 - https://developers.google.com/web/fundamentals/security/prevent-mixed-content/what-is-mixed-content

不要使用 Ajax 調用,因為它們受瀏覽器限制。 您可以安全地將服務器調用與服務器端語言(如 php node.js 、Asp.net 等)一起使用

暫無
暫無

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

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