Content Security Policy
內容安全政策
內容安全政策(CSP)是一組 HTTP 規則,用來限制瀏覽器可在頁面載入哪些檔案,以及哪些指令碼可以執行。
另一個例子
銀行單頁應用程式(SPA)先使用 `Content-Security-Policy-Report-Only`,移除行內處理器,再強制執行 `script-src 'nonce-r4…' 'strict-dynamic'; object-src 'none'; base-uri 'none'; frame-ancestors 'none'`。每個回應都使用全新、難以猜中的隨機值。抽樣的違規報告不會記錄客戶 URL。
主要部分
- 01Policy 傳遞
- 02Fetch 與文件 Directive
- 03違規回報與部署
什麼時候用
把經過測試的嚴格 CSP 當成額外防線,並優先使用隨機值或雜湊。政策變更後,先觀察報告再全面強制。
什麼時候不要用
不要把寬鬆的 `*` 或 `unsafe-inline` 規則當成強大防護,也不要重複使用可猜中的隨機值。CSP 不能取代一般的 XSS 防護。
程式裡的名稱
Content-Security-Policy response header with nonces/hashes and restrictive directives 上線前要檢查
檢查介面約定、任何情況都不能破壞的規則、授權與輸入限制。測試重試、重複執行只生效一次、逾時與部分失敗。驗證資料完整性、相容性、監控、復原與回復上一版。
預期成果:為這套系統設計或檢查 內容安全政策 (Content Security Policy),並讓資料保持正確、安全且容易維護。 使用者情境:銀行單頁應用程式(SPA)先使用 `Content-Security-Policy-Report-Only`,移除行內處理器,再強制執行 `script-src 'nonce-r4…' 'strict-dynamic'; object-src 'none'; base-uri 'none'; frame-ancestors 'none'`。每個回應都使用全新、難以猜中的隨機值。抽樣的違規報告不會記錄客戶 URL。 技術概念或控制措施:內容安全政策 (Content Security Policy)。 適用理由:把經過測試的嚴格 CSP 當成額外防線,並優先使用隨機值或雜湊。政策變更後,先觀察報告再全面強制。 不應使用的情況:不要把寬鬆的 `*` 或 `unsafe-inline` 規則當成強大防護,也不要重複使用可猜中的隨機值。CSP 不能取代一般的 XSS 防護。 工程要求:定義輸入、輸出、介面約定,以及任何情況都不能破壞的規則。說明授權與輸入檢查範圍。定義失敗、逾時、重試和重複執行只生效一次的規則。也要定義資料搬移與相容限制。 營運要求:加入監控訊號與隱藏敏感資料的記錄。設定容量上限並寫好操作手冊。測試復原與回復上一版的流程。 驗收條件:介面約定與失敗路徑測試通過。重試或部分失敗時,資料與授權規則仍正確。效能上限、監控、復原與回復上一版的方法都已驗證。 證據與限制(證據邊界):正式文件仍可能是草案、候選版或最終版。請查看文件狀態,也要確認瀏覽器或平台是否支援。 待確認:程式執行環境、資料位置、流量形態、資料一致需求和安全邊界。也要確認相容期間、服務目標(SLO)與回復上一版的限制。
檢查這份需求
請 AI 程式助手檢查目前如何使用 內容安全政策 (Content Security Policy)。 定義:內容安全政策(CSP)是一組 HTTP 規則,用來限制瀏覽器可在頁面載入哪些檔案,以及哪些指令碼可以執行。 正式環境檢查:檢查介面約定、任何情況都不能破壞的規則、授權與輸入限制。測試重試、重複執行只生效一次、逾時與部分失敗。驗證資料完整性、相容性、監控、復原與回復上一版。 修改程式前,先列出看到的證據、缺口、嚴重程度,以及最小且安全的修正。