2010-06-07 152 views
2

我的網站利用WYSIWYG編輯器爲用戶更新他們的帳戶,輸入評論和發送私人消息。PHP XSS預防白名單

編輯器(CKEditor)非常適合只允許用戶輸入有效輸入,但我擔心通過TamperData或其他方式注入。

如何在服務器端對此進行控制?

我需要將特定標籤列入白名單:<b><ul><ol><a><img><br>,這是防止XSS的安全方法嗎?

回答

7

使用HTML Purifier

HTML淨化器是用PHP編寫的符合標準的HTML 過濾庫。 HTML Purifier不僅會刪除所有 惡意代碼(更準確地稱爲XSS) ,而且還會完全審覈,安全但不受限制的白名單。

+0

使用我自己的白名單對strip_tags進行此操作是否有優勢? – pws5068 2010-06-07 20:15:02

+0

其實,我在這裏找到了我的答案:http://htmlpurifier.org/comparison 謝謝你的幫助。 – pws5068 2010-06-07 20:18:05

+0

@ pws5068:歡迎您:) – Sarfraz 2010-06-07 20:19:37

0

strip_tags將成爲你的朋友。第二個參數可以讓你在允許標記數組傳遞 strip_tags

+1

第二個參數**是不安全**,因爲它不會刪除屬性。有人仍然可以利用安全元素上的屬性,例如'
'。 – Kornel 2010-12-10 00:11:07

+0

你如何爲那個人注入evil_script代碼? – MANCHUCK 2010-12-14 17:42:33