2010-09-23 29 views
0

恕我直言,是否必须修改POST/GET vars中的所有空格?

我最近听说过这几次。 在一些门户网站上,我看到关键字开头的空白时,返回空搜索结果,没有空白空间它正在工作。

有些情况下,这可能是有害的吗?

有人可以为这种做法提供一个参数吗?

回答

2

在几乎所有情况下,清理输入是有益的,因为你不能相信你会得到什么。但请注意,你不想总是盲目地去做。在某些情况下,您可能实际上需要一个前导空间或尾随空间。 (例如,在密码中)

+0

有关密码的好说法=)! – holms 2010-09-23 22:55:56

0

清理用户输入的文本通常是一个好主意,通常包括删除无关的空格,有问题的标点符号等等。这也可以包括用单个空间替换多个相邻空间。

不用说,您应该通过适当地清理(预处理)用户提供的文本来保护自己免受SQL和HTML注入攻击。最简单的方法是忽略标点符号;另一种方法是将标点符号转换为无害的转义序列。

+0

保护帖子/获得变量是我必须的。但是现在的问题主要是关于从一开始就修整空白字符串的问题。 – holms 2010-09-23 22:55:30

0

不,没有任何问题,如果用户的输入需要空格,请不要修剪掉,但如果它们不是,我会建议你修剪空格。

例如,假设某人输入了要拆分的多字字符串。

通常情况下,通过使用空格作为分隔符来拆分它们,但是如果空格未被修剪,您可能会在开始时获取空变量,也可能不会。这几乎总会让你猜测是否使用拆分字符串的第一个元素。如果你只是修剪空格,它确实使它变得更容易。否则,您将有大量代码来确定拆分字符串的第一个元素是否为有效条目。

“这个字符串”将被拆分成一个看起来像这样的数组。

$string[0] = '' 
$string[1] = 'This' 
$string[2] = 'string' 

但“此字符串”简直是

$string[0] = 'This' 
$string[1] = 'string' 

如果你正在做的字符串操作,你可能想要找出多少话是在一个字符串,第一种情况(上图)将显示你3,而后者会告诉你2,除非开始或结尾的空格是必须的,否则只有太多的东西需要寻找。

相关问题