2011-06-18 157 views
0

我應該不允許的字符,如」,「,>,<,\ ...在一個上傳表單文本字段中鍵入?文本將通過PHP被髮送到博客。不允許字符

我heared一些字符可能造成麻煩,並且可以用來「劈/傷害」服務器,這些服務器。字符應限制?

感謝您的輸入。 邁克爾

+0

不要黑名單字符。將他們列入白名單。 –

+0

對不起,這是什麼意思? – Michael

+0

http://en.wikipedia.org/wiki/Whitelist –

回答

1

沒有必要限制任何東西。在問題是你必須消毒所有的用戶輸入;對於這種特定類型的數據(可能的HTML),在將所有用戶提供的數據顯示爲頁面的一部分之前,使用htmlspecialchars是必要且足夠的。

例如,如果在窗體中有一個名爲post-body textarea的,你應該接受用戶輸入(與$_REQUEST['post-body'] EG),並將其保存到你的數據庫,是(警告:使用mysql_real_escape_stringPDO保護自己免受SQL在這個階段注射!)。到時候來顯示它,你會從數據庫中檢索,並與打印的東西像

echo htmlspecialchars($postBody); 

this question對數據的消毒一些背景。

0
<? $string = str_replace("\\\"", "\"", $string); 
     $string = htmlspecialchars($string); 
     $string = preg_replace("/\r\n|\n|\r/", "<br>", $string); ?> 

<input type = "text" name = "string" id = "string" value = "<?=$string?>">