2011-08-29 50 views
8

這是否取決於輸入是否打印給用戶?在我的情況下,我需要將輸入返回給用戶(評論和生物)。我應該同時使用striptags()和htmlspecialchars()來防止XSS?

謝謝!

+0

您的主要關注點應該是消毒用戶輸入,無論您如何處理它...如果您在任何數據庫查詢中使用輸入,您還需要使用適當的轉義算法將其轉義... –

回答

18

htmlspecialchars()足以防止XSS。

地帶標籤刪除標籤,但不是特殊字符,如"',所以如果你使用strip_tags()你也必須使用htmlspecialchars()

如果您希望用戶的評論像他們鍵入一樣顯示,請不要使用strip_tags,只能使用htmlspecialchars()。

+0

Downvoter解釋他爲什麼低估了? – arnaud576875

+1

我不能說downvoters,但你的最後一行似乎完全錯誤;你應該總是使用'htmlspecialchars'(當你輸出到瀏覽器時...)**除了**當你希望用戶能夠執行代碼時(比如在jsbin中) – jeroen

+0

@jeroen你錯過了'Use htmlspecialchars )只,'。這意味着如果你希望你的用戶的評論像他們鍵入一樣顯示,不要使用strip_tags;只能使用htmlspecialchars。 – arnaud576875