從 OWASP 的網站 https://cheatsheetseries.owasp.org/cheatsheets/Content_Security_Policy_Cheat_Sheet.html:
從您的 Web 服務器發送 Content-Security-Policy HTTP 回應標頭。
內容安全策略:...
使用標頭是首選方式,并支持完整的 CSP 功能集。在所有 HTTP 回應中發送它,而不僅僅是索引頁面。
我不明白這怎么可能是真的,因為可以通過在 HTML 中使用元標記來設定內容安全策略。我也沒有看到該策略如何應用于除 HTML 頁面之外的任何其他內容。
有誰知道為什么要做出上述宣告,以及僅發送 HTTP 標頭Content-Security-Policy進行text/html回應是否安全?
順便說一句,策略太大了,我想發送盡可能少的位元組。
uj5u.com熱心網友回復:
這仍然是尚未正式指定的內容,對此仍有一些爭論:https : //github.com/w3c/webappsec/issues/520
一般來說,這里有兩個論點:
一方面,一些其他檔案型別(XML、PDF,甚至 SVG)可以從 CSP 中受益,任何資源都可以通過右鍵單擊并在單獨的選項卡中打開來成為頁面。
另一方面,CSP 可能會變得非常大,并且通常是為 HTML 頁面撰寫的。所以發送其他資源有點浪費,而且大部分都無關緊要。
正確的答案(如上面所建議的)可能是對所有非 HTML 回應都有一個減少的、非常嚴格的 CSP。
但我認為對于大多數人來說,只在 HTML 上使用它就足夠了,并帶來了 CSP 的大部分好處。再說一次,CSP 是一種先進的技術,所以如果要做到這一點,那為什么不正確地做呢?
uj5u.com熱心網友回復:
使用標頭是首選方式,并支持完整的 CSP 功能集。
我不明白這怎么可能是真的,因為可以通過在 HTML 中使用元標記來設定內容安全策略。
- 不支持元標記內的指令:
report-to和report-uriframe-ansectorssandox
此外,元標記不支持
Content-Security-Policy-Report-Only功能,僅支持Content-Security-Policy.在 HTML 代碼中的元標記之前開始加載的所有資源都不受 CSP 的影響。惡意腳本可以
<head>在元標記之前作為該部分的第一項注入將
nonce-value在meta標簽暴露,因此可以通過腳本和重用easely偷竊。使用元標記,您只能為 HTML 頁面設定 CSP,但 CSP 應用于 XML 頁面中的 XSLT,以及一些其他型別的內容(見下文)。
因此,確實 HTTP 標頭是傳遞 CSP的首選方式,并且通過元標記使用 CSP 不允許您使用完整的 CSP 功能集。
在所有 HTTP 回應中發送它,而不僅僅是索引頁面。
我也沒有看到該策略如何應用于除 HTML 頁面之外的任何其他內容。
該規范考慮到了一點不同 - 您應該將帶有 HTML 內容的任何回應頁面發送到 CSP,不僅是 for 200 OK,甚至是 for404 Not found
403 Access Forbidden等。
因為這些頁面可以訪問cookieCSP 未涵蓋的頁面中可以竊取的內容。
CSP 不僅適用于 HTML 頁面,還適用于 XML 頁面中的 XSLT,以及作業人員的外部 javascripts 檔案(在Firefox 中)。此外frame-ancestors,CSP HTTP 標頭指令適用于旨在嵌入 iframe 的任何內容(JPEG/GIF/PNG/PDF/MP4/等),請參閱此處的細節。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/341476.html
