我對此有點困惑。我一直在閱讀有關htmlspecialchars()
,我打算將這個用於textareas POST
以防止XSS攻擊。我知道通常使用htmlspecialchars()
來生成發送給瀏覽器的HTML輸出。但我不確定的是:在插入MySQL之前使用htmlspecialchars()是否好?
1)在將用戶輸入數據插入到MySQL之前,使用htmlspecialchars()
是否安全?我已經使用帶有參數化值的PDO準備語句來防止SQL注入。
2)或者,我真的不需要擔心使用htmlspecialchars()
來插入值(只要它們是參數化的),並且只使用htmlspecialchars()
當我從MySQL獲取結果並將其顯示給用戶時?
#2是正確的答案 – jszobody
HTML轉義(1)與您的數據庫並不真正相關。通常情況下(2)是首選,因爲過早逃脫可能會影響以後的網頁以外的輸出通道。對於新手來說,早期的HTML轉義仍然是可取的;比後來遺忘更早。 – mario
假設你想產生一些文本日誌。那麼你將不得不撤消你的逃跑。相反,在最後一刻可以逃脫,以便你知道這是適當的。 –