2010-01-08 34 views
1

什麼是阻止用戶將html或javascript添加到字段的最安全的方法。我添加了一個youtube風格的'描述',用戶可以在其中解釋他們的工作,但除此之外我不想要其他任何內容,並且最好不要使用諸如'<'或'>'之類的垃圾郵件。php - 確保純文本的最安全方法

我可以做這樣的事情:

$clean = htmlentities($_POST['description']); 

if ($clean != $_POST['description']) ... then return the form with an error? 
+0

看不到爲什麼不.. – Earlz 2010-01-08 17:38:29

回答

5

你見過strip_tags

+0

你們都在同一分鐘內回答,但根據'最古老'你是第一個。但是,謝謝大家的回答。 – Mark 2010-01-08 17:57:20

3

strip_tags()可能是最好的選擇。

你不需要檢查清潔後的代碼與原始代碼並拋出錯誤。只要它被清理乾淨,你應該能夠顯示它。只要扔掉原來的評論。你可以在文本框下面放一個註釋,說如果你想讓它更加用戶友好,就不允許使用html。

2

使用strip_tags()而不是htmlentities()
而且方法沒問題。

0

如果您要在MySQL中存儲數據,請不要忘記mysql_real_escape_string()。

1

htmlspecialchars(),如果使用得當(請參閱註釋),確保純文本的最安全方法。當輸出具有所有HTML特殊字符時,沒有辦法注入任何HTML或JavaScript。如果您使用strip_tags,則會阻止用戶使用完全合法的字符。

+0

@Ignas - 這是錯誤的,使用htmlspecialchars()而不指定字符編碼,使用UTF-7的XSS攻擊是可能的。 – 2010-01-08 18:27:10

+0

那麼,這是不是也意味着'strip_tags'也容易受到這個?但無論如何,謝謝。我糾正了我的答案。 – 2010-01-08 19:32:29

+0

@Ignas - 我真的不知道strip_tags()是否易受攻擊,以及它不會將編碼作爲參數。我將不得不圍繞這個:) – 2010-01-09 02:53:10

相關問題