簡體   English   中英

JavaScript 可以安全地從不受信任的域中獲取數據嗎?

[英]Can JavaScript safely fetch data from untrusted domains?

我的網頁需要以客戶端啟動的方式從可能(有時**)不受信任/攻擊者控制的域中獲取數據。

JavaScript 是否允許 [安全地] 從可能不受信任或攻擊者控制的域中獲取數據*?

如果是這樣,這是什么function?


澄清/附錄/“inb4”/ PS:

*數據獲取協議/格式尚未[尚未]定義; 甚至沒有 HTTP GET vs POST。 我對數據格式不偏愛,可以選擇+根據需要/適當的,甚至包括純文本/划界格式實施。 沒有要求使用 JSON

**從技術上講,域(可能是任意的/用戶定義的;)有時必須通過 HTTP 加載,這種威脅 model 與從對抗服務器獲取數據同構。 尤其是在漫游非 VPN 網絡連接的情況下,(而且,是的,之后對所述不受信任數據的安全處理超出了這個問題的范圍)

XY 問題“X”:這里的驅動項目是 web 瀏覽器主頁/應用程序,它將從可能是用戶控制的來源加載內容(從偏好和瑣碎的小部件到直接內容),並且可能(由用戶選擇)駐留在即使是非 ICANN 域(例如本地域、OpenNIC 域等)。完全在范圍內並且可以預期/可以接受某些內容將僅通過 TLS 提供服務,並且可以服務於從“金絲雀”等各種目的"(包括 MITM 存在和單純的網絡配置檢查)到完全特定於位置的數據。 由於上述一系列原因[域未預定義],TLS 連接可能可用也可能不可用; 即使在這種情況下,也有必須/應該/將要加載的內容。

不是#29022794的副本。 我沒有使用 JQuery 的要求,並且該問題僅詢問$.getJSON()是否可以安全地用於不受信任的 URL(其中,a.它似乎不是;並且 b.即使它是,這個問題也會是詢問底層 function [JQuery 正在調用],而不是詢問如何使用 JQuery 本身)。

在一種情況下畫筆是:XMLHttpRequest似乎可以安全地調用不受信任的域。

理由:

請參閱OWASP 關於 AJAX 漏洞的頁面

  • 未提及 [這種] 惡意制作的服務器響應對客戶端構成的威脅; 列出的唯一客戶端風險是一種或另一種注入

另請參閱Security Stack Exchange 上的類似問題

  • OP 的問題(將 XMLHttpRequest 作為 JSON解析到攻擊者控制的服務器是否安全)必然假設接收此類文件是安全的。
  • 兩個用戶多次評論了這個問題,討論了解析上述響應的含義,並且從未質疑這個基本假設,只評論了與 OWASP 討論的類似的 XSS 注入攻擊。
    • ThoriumBR (>5y 成員,2019 年信息安全堆棧交換用戶 99.8th-percentile)
    • Ry (>8y 成員,Stack Overflow 版主)

雖然很難“證明”負面影響,尤其是在安全問題方面,但事實上有大量內容在線討論解析潛在惡意響應(XSS 注入預防)所涉及的風險,處理此類服務器的風險(CORS ), ETC。; 顯然,即使沒有對此進行任何討論,也意味着它可能不是風險之一。

不可以。由於CORS安全保護,您無法在瀏覽器中執行此操作。 如果你找到了,那是一個錯誤,瀏覽器會修復它。

但是,您可以在服務器端使用fetch API

暫無
暫無

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

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