簡體   English   中英

關於CORS的安全問題

[英]Security concerns about CORS

我剛剛了解了CORS,主要是因為我直到現在才需要它。

我已經讀過CORS通過發送帶有AJAX調用的HTTP頭來啟用跨站點源,因此其他服務器可以評估請求來自已批准的站點。

現在我主要擔心的是,HTTP標頭不能被欺騙嗎? 例如,攻擊者不能將請求卷曲到其他服務器,發送我的CORS請求所做的確切HTTP頭嗎? 在這種情況下,服務器將接受請求,攻擊者將檢索服務器將發送給他的任何敏感數據。

我們都知道從頁面檢索javascript是多么容易,所以我用CORS發送的所有內容都可以通過敏銳的眼光看到。 包含HTTP標頭。

因此,我認為敏感信息永遠不應該在CORS通信中共享......或者我是否認為這一切都錯了? 請輕松一點! :) 謝謝

現在我主要擔心的是,HTTP標頭不能被欺騙嗎? 例如,攻擊者不能將請求卷曲到其他服務器,發送我的CORS請求所做的確切HTTP頭嗎?

你有兩個誤解。

  1. CORS標頭由服務器而不是客戶端發送(盡管有時客戶端會發出飛行前OPTIONS請求)
  2. 什么是同源政策正在防范

同源政策的存在是為了阻止Mallory(邪惡)網站從Alice的網站獲取數據,當Alice訪問Mallory的網站時,要求Alice的瀏覽器請求它。

如果可能,那么Mallory可以獲得任何應該是Alice和Bob之間共享秘密的信息(例如Alice在Bob銀行網站上的賬戶余額)。

攻擊者不能將請求卷曲到其他服務器,發送我的CORS請求的確切HTTP頭嗎?

由於Mallory無法知道請求中需要包含哪些安全憑證(例如,因為它們存儲在Alice的Cookie的Bob網站中):不。

但是CORS在這里並不重要,但是同源策略不是由cURL實現的,因為它不是運行由任意網站提供的JavaScript的瀏覽器。

我想永遠不應該在CORS通信中共享敏感信息

這取決於信息的性質。

如果Alice 和你在CORS標題授權的任何網站都被允許看到它,那么發送它就好了(盡管你應該使用SSL):只要你認證了Alice的身份。

如果只有Alice和你的站點應該看到它,那么不要在其上放置CORS頭(並且不提供繞過同源策略的任何其他方式,例如JSON-P)。

如果Alice不應該看到它,那么你永遠不應該將它發送到Alice的瀏覽器,CORS或沒有CORS。

暫無
暫無

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

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