2011-06-18 126 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?>">