2014-01-06 92 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(),如果要保持一致性,則應該使用該數字在所有輸入上