複選題
4. 為了防範常見的網站應用程式攻擊,如 SQL 注入(SQL Injection)與跨網站指令碼(XSS),開發團隊在設計安全架構時,應實施下列哪些防護與應變技術最為適切?(複選)
(A) 在伺服器端採用參數化查詢(Parameterized Queries) 或預處理敘述(Prepared Statements)來處理所有資料庫操作
(B) 在網頁前端實作嚴格的內容安全策略(Content Security Policy, CSP)以限制外部腳本的載入與執行
(C) 對所有使用者輸入的資料,在輸出至網頁時進行適當的編碼(Output Encoding)
(D) 僅在 HTTP 協定上運行網站,避免 HTTPS 加密造成的效能損耗
統計: A(53), B(52), C(52), D(0), E(0) #3536950
詳解 (共 2 筆)
CSP(Content Security Policy,內容安全政策)就是一種「瀏覽器端的白名單安全機制」,網站可以透過 HTTP 標頭或 <meta>,告訴瀏覽器「哪些資源可以載入,哪些不行」。
為什麼需要 CSP?
因為 XSS(跨站腳本攻擊) 和惡意外部資源是網站安全的大宗問題。
即使程式碼有漏洞,如果有嚴格 CSP,攻擊者就算插入 <script>alert(1)</script>,瀏覽器也會因為 CSP 禁令而拒絕執行。
CSP 能做什麼?
-
限制腳本來源 (script-src)
只能載入自家(self)或特定 CDN,阻擋惡意第三方腳本。 -
限制樣式來源 (style-src)
防止有人用 CSS 偷竊資料或嵌入奇怪字體。 -
限制圖片來源 (img-src)
避免外洩敏感資訊(例如攻擊者用圖片請求收集用戶 ID)。 -
禁止危險功能 (object-src / frame-ancestors / form-action)
阻止 <object> / <iframe> 被惡意利用。 -
搭配 nonce 或 hash
僅允許帶有正確 nonce 或 hash 的 <script> 內聯程式碼執行,抵禦 XSS。 -
回報機制 (report-uri / report-to)
讓網站收集 CSP 違規報告,方便調整政策。
(A) 參數化查詢 / 預處理敘述
✅ 正確
這是防範 SQL Injection 最重要的手法,可以避免惡意輸入被當成 SQL 語法執行。
(B) 內容安全策略 (CSP)
✅ 正確
CSP 能有效降低 XSS 攻擊風險,限制瀏覽器載入與執行未授權的腳本來源,是 OWASP 推薦的重要防禦措施之一。
(C) 輸出編碼 (Output Encoding)
✅ 正確
針對輸入資料,在輸出到網頁前進行適當的編碼 (例如 < → <),可防範反射型與儲存型 XSS。
(D) 僅用 HTTP,避免 HTTPS
❌ 錯誤
HTTPS 與 SQLi / XSS 防禦無關,而且停用 HTTPS 會讓傳輸過程容易被竊聽與竄改,反而更危險。