2014-01-06 68 views
0

在这种情况下使用htmlspecialchars矫枉过正?我已经检查过输入是否只由数字组成,但除了数字之外,还有什么方法可以潜入代码中?这里是否需要htmlspecialchars?

if (ctype_digit($input)){ 
    $sanitized=htmlspecialchars($input); 
} 
+2

它足够安全。但请注意,它基本上是查找任何不是0-9的,所以'10'将会通过,但是'1.3'和'1e30'都会失败。它看起来纯粹用于数字,并且不会传递许多有效数字,但包含非数字的东西。 –

+0

不,你不应该在这里使用 – 2014-01-06 19:39:46

+0

干杯,我只需要它纯粹的数字,所以它听起来应该没问题。 – user3166656

回答

0

这是没有必要在这里使用,因为它会验证该字符串的每一个字符是0到9之间的整数,所以没有对非数字字符以获得一种方式。

但是,您不一定要检查是否有数字,因此您应该使用is_numeric($num),而在这种情况下,您不必使用htmlspecialchars(),如果要保持一致性,则应该使用该数字在所有输入上