Content-Security-Policy: default-src 'self'; frame-ancestors 'none'; base-uri 'self'
限制網頁可載入的資源來源,避免惡意第三方腳本注入。default-src 'self'只允許同源資源。
frame-ancestors 'none'禁止此頁被嵌入到 iframe,防止點擊劫持。
base-uri 'self':限制 base 標籤來源,避免攻擊者改變相對路徑的解析。
Referrer-Policy: strict-origin-when-cross-origin
控制瀏覽器在跳轉時攜帶的 Referer 資訊。為了避免完整 URL 被洩露到外部網站。
跨域時:只傳送來源 (scheme + host + port)。更嚴格可用 no-referrer。
目的是要防止 Clickjacking。而實作方式 X-Frame-Options: DENY → 完全禁止被嵌入 iframe。
或使用 CSP 的 frame-ancestors 'none'(優先使用)。
原則:所有使用者輸入都必須經過嚴格處理。
具體作法:
輸入:驗證格式、過濾不合理資料(例如只允許數字、email 格式等)。
輸出:利用框架的 自動 HTML 轉義 機制(例如 React JSX 預設轉義,避免 XSS)。
避免:
element.innerHTML = userInput;
應改用 textContent 或框架綁定。
原則:遵循 REST 與安全規範。
建議做法:
敏感操作(非冪等) → 使用 POST / PUT / DELETE。
查詢(冪等) → 使用 GET。
好處:
避免敏感操作被瀏覽器快取或 CSRF 利用。
更符合安全模型與 API 設計習慣。