內容安全策略(CSP):Web Security的綜合指南
內容安全策略(CSP)是一種關鍵的安全機制,保護網站免受內容注入攻擊的攻擊,主要是跨站點腳本(XSS)。 該聲明性策略使開發人員能夠創建一個信任資源起源的白名單,控制瀏覽器如何加載資源,使用內聯樣式和腳本,並處理動態JavaScript評估(例如,使用eval()
)。 從該白名單外部加載資源的任何嘗試都被阻止。
密鑰概念:
Content-Security-Policy
標題包含指令指定允許的域並限制JavaScript執行以防止注射攻擊。 report-uri
,,,,
和>。
對於數據URL,在指令中包括 >瀏覽器兼容性: > CSP 1.0享有廣泛的瀏覽器支持,較舊的Internet Explorer版本的兼容性有限。
>用>監視違規: >示例: 違規行為(例如,從
進行測試,使用 實現CSP: ,node.js's)。 >
現實世界示例: CSP級別2增強: csp級別2介紹了新指令( ,,,
>服務器計算CSP標頭中包含的腳本/樣式塊的哈希。瀏覽器在執行之前驗證此哈希。 結論:Content-Security-Policy
>作為未指定指令的後備。 default-src
>
script-src
>指令遵循一致的模式:object-src
style-src
img-src
media-src
:指當前域。 frame-src
font-src
URL列表:空間分離的URL指定允許的起源。
connect-src
default-src
:禁止給定指令的加載資源(例如,
self
none
)允許子域包含(例如,object-src 'none'
.mycdn.com`)。 每個指令都需要明確的域/子域列表;他們不繼承以前的指令。 data:
(例如,img-src 'data:'
)。 unsafe-inline
(對於script-src
和style-src
)允許內聯<script></script>
和<style></style>
>標籤,unsafe-eval
>(forscript-src
)啟用動態代碼評估。 兩者都使用選擇加入政策;省略它們會執行限制。 report-uri
>
report-uri
<code>Content-Security-Policy: default-src 'self';</code>
www.google-analytics.com
report-uri
標題:Content-Security-Policy-Report-Only
。 這報告了違規行為而不會阻止資源,從而允許在不中斷的情況下進行政策完善。 兩個標頭都可以同時使用。
Content-Security-Policy-Report-Only
通過HTTP標頭設置header()
setHeader()
base-uri
child-src
form-action
>
frame-ancestors
CSP標籤和內聯腳本標籤中都包含一個隨機生成的nonce。 plugin-types
基於哈希的保護:
以上是通過內容安全策略改善Web安全性的詳細內容。更多資訊請關注PHP中文網其他相關文章!