Web 應用面臨多層面威脅,需從客戶端腳本、伺服器應用、檔案上傳三個維度建立防禦體系。
攻擊者透過「HTML 注入」植入惡意腳本,受害者瀏覽頁面時腳本執行,竊取 Cookie、劫持會話、偽造請求。
典型場景:輸入框未過濾,提交 <script>alert(document.cookie)</script>,管理員查看後台時觸發。
<Context ... useHttpOnly="true"/>
或 web.xml:
<session-config>
<cookie-config><http-only>true</http-only></cookie-config>
</session-config>
< > & " ' 進行 HTML Entity 編碼(JSTL c:out、EL ${fn:escapeXml()})。成因:用戶可控輸入直接拼接進 SQL 語句。
根治:全面使用 PreparedStatement 參數化查詢,嚴禁字串拼接 SQL。
生產環境不應暴露堆疊追蹤、SQL 錯誤細節。在 web.xml 設定友善錯誤頁:
<error-page>
<error-code>404</error-code>
<location>/error/404.jsp</location>
</error-page>
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/error/500.jsp</location>
</error-page>
SELECT/INSERT/UPDATE/DELETE 權限,禁止 DROP、TRUNCATE、GRANT 等高危操作。web.xml → <session-timeout>30</session-timeout>(單位:分鐘)。攻擊者上傳可執行腳本(JSP、PHP、ASPX),透過訪問路徑執行伺服器命令,導致伺服器淪陷。
jpg, png, pdf, docx 等安全類型;拒絕 jsp, php, asp, exe, sh。Content-Type,但不可單獨依賴(可偽造)。FF D8 FF)。/data/uploads/)。location ~ \.php$ { deny all; }、IIS 移除 Handler Mapping)。安全是系統工程,需結合開發規範、程式碼審查、WAF、定期滲透測試持續強化。上述措施為基礎防線,實際部署請根據業務風險等級分級防護。