2011-05-09 115 views
2

如何完全防止PHP中的xss攻擊?這是假設我不關心任何HTML標籤或其他格式。只需運行strip_tags並使其完全安全就足夠了嗎?PHP:如何完全防止XSS攻擊?

+0

[strip_tags()容易遭受腳本攻擊?](http://stackoverflow.com/questions/5788527/is-strip-tags-vulnerable-to-scripting-attacks) – Gordon 2011-05-09 08:07:59

+7

@edem:XSS漏洞獨立於語言。 – Gumbo 2011-05-09 08:09:21

+0

我知道,但PHP更脆弱。 – 2011-05-11 09:38:11

回答

4

htmlspecialchars()strip_tags()都被認爲是安全的,用於清除HTML頁面上輸出的用戶輸入。

相關:

+2

取決於上下文。你是輸出它之間的標籤,在CSS中,在JavaScript中,在一個JavaScript字符串內的onclick事件等 – Erlend 2011-09-03 20:36:44

+1

如果輸入有HTML代碼這個功能工作 但如果輸入包含這樣的代碼:javscript:alert(1) 這個函數不能保護你從xss ... – 2014-03-25 14:23:23

+0

@Pouya現在,這只是無稽之談。如果沒有HTML元素放入,攻擊者會如何執行JavaScript? – 2014-03-25 14:43:54

0

最簡單的方法是簡單地防止用戶進入HTML標籤。如果你strip_tags()或htmlspecialchars()所有的用戶輸入,那麼沒有辦法引入<script>標籤。

如果你想允許有限的標記,那麼你可以使用類似bbcode的語法(找到一個PHP庫來做到這一點不應該很難,儘管我從來沒有這樣做過,所以沒有任何建議在那個前端),或者你可以使用HTMLpurifier來限制用戶被允許輸入的標記。