是否“必须”修剪POST / GET变量中的所有空格?

时间:2010-09-23 22:31:20

标签: php django

IMHO,

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

是否存在某些可能有害的情况?

有人可以为这种做法提出论据吗?

3 个答案:

答案 0 :(得分:2)

在几乎所有情况下,清理输入都是有益的,因为你无法相信你会得到什么。但请注意,您不希望总是盲目地这样做。在某些情况下,您可能确实需要前导空格或尾随空格。 (例如,在密码中。)

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

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

通常情况下,您可以通过使用空格作为分隔符来拆分它们,但如果没有修剪空格,您可能会或者可能不会在开头获得一个空变量。这几乎总是让你猜测是否要使用拆分字符串的第一个元素。如果你只修剪空格,它真的会让它变得容易多了。否则,您将拥有一大段代码来确定拆分字符串的第一个元素是否是有效条目。

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

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

但“此字符串”只是

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

如果你正在进行字符串操作,你可能想知道字符串中有多少个单词,第一个案例(上面)会显示3个,而后者会显示2个。看起来太多东西了因为除非,开头或尾随的空格确实是必要的。