要防止儲存型的跨站腳本攻擊(XSS),在 PHP 中可以採取以下措施:

  1. 輸入驗證和過濾:對於從使用者接收到的所有輸入資料(如表單提交、URL 參數、Cookie 等),進行嚴格的驗證和過濾。移除或編碼特殊字元,例如 <, >, ", ' 等,以防止它們被解析為腳本。

  2. 輸出編碼:在輸出資料到網頁中時,進行適當的編碼,確保特殊字元被轉換為它們的實體編碼形式。使用 PHP 內建的 htmlspecialchars 函式或類似的工具來實現。

  3. 安全的資料庫儲存:在儲存資料到資料庫中時,使用預先準備的陳述式(prepared statements)或綁定參數(bind parameters)來防止 SQL 注入攻擊。這樣可以確保資料被正確轉義並以安全的方式插入到 SQL 陳述式中。

  4. 內容安全政策(CSP):設定適當的內容安全政策標頭,限制網頁內容能夠載入的來源和類型。這可以防止惡意腳本的執行,提供額外的保護。

  5. 防範跨站腳本攻擊的其他措施:使用跨站請求偽造(CSRF)保護,確保跨站腳本攻擊無法利用已驗證的使用者帳號進行操作;定期更新和維護 PHP 和相關函式庫的版本,以確保安全漏洞得到修補。

除了這些措施外,持續的安全審查和測試也是重要的。對程式碼進行安全審查,使用漏洞掃描工具和手動測試來檢查潛在的安全漏洞,以確保應用程式的安全性。