2014-03-13 105 views
1

我有用戶輸入,其中將包含我需要清理的html。目前我正在使用:如果輸入有html,則對用戶輸入進行清理

$data = trim($data); 
$data = stripslashes($data); 
$data = htmlspecialchars($data); 
$data = preg_replace('/[^a-zA-Z0-9_-]/', '', $data); 

其他輸入(不包括html)。我允許使用下劃線和連字符,因爲它們是用戶個人資料的Twitter用戶名。任何想法在內部使用html標記進行消毒輸入?

回答

1

通過其他方式進行HTML消毒可以保護網站免受XSS攻擊。據XSS (Cross Site Scripting) Prevention Cheat Sheet清潔HTML取決於其如何打印用戶數據,例如:下表顯示了不同的方案,其中不同的保護機制將應用於:

enter image description here

PHP的strip_tags的功能,可用於一些同時,它對所有類型的惡意代碼都不安全。我建議遵循OWASP。

+0

這不是一個完整的答案。另外,我們可以從問題中假設這將顯示在OWASP上面顯示的HTML/HTML-Body上下文中的網頁上。 –