SQL 注入與 XSS:為什么同一套過濾規則不夠用

按資料庫查詢與瀏覽器渲染兩種上下文理解注入風險,把修復放到真正處理資料的位置。

本文目錄

資料跨越了不同的解釋邊界

OWASP Top 10:2025 的 A05 關注注入風險。SQL 注入發生在資料被當作查詢結構處理時,XSS 則涉及不可信內容在瀏覽器上下文中被當成可執行內容。兩者都與輸入有關,但資料庫參數綁定與頁面輸出編碼解決的是不同問題。

查詢結構與參數保持分離

資料庫存取應優先使用參數化查詢;必須動態選擇字段或排序方式時,將其映射到明確允許的選項。資料庫帳號只授予業務所需權限,并檢查后臺導出和批量處理是否繞過統一存取層。使用 ORM 并不自動保證所有原生查詢安全。

在輸出位置處理瀏覽器上下文

頁面文本、屬性、URL 和腳本上下文需要不同處理方式。富文本場景使用適合業務的安全凈化方案,并審查前端直接寫入 HTML 的位置。內容安全策略可作為補充,不能代替正確編碼;簡單刪除幾個關鍵詞也無法覆蓋所有上下文。

回歸正常內容與危險邊界

在自有測試環境覆蓋搜索、評論、昵稱、導出及管理員查看頁面,既檢查邊界輸入,也驗證合法富文本沒有被破壞。WAF 可幫助識別其支持的異常請求;應用仍應修正查詢和渲染邏輯,避免規則一撤銷風險就重新出現。

參考資料

OWASP Top 10 2025: Injection

OWASP SQL injection prevention

OWASP XSS prevention

繼續閱讀

查看相關內容

返回行業資訊 聯繫技術支持