0
我正在寫一個控制器操作,它從一個窗體接受兩個輸入:一個現有的用戶ID和一個新的用戶標識。過濾輸入 - 是足夠的
兩者都應該是整數值。
爲了避免任何潛在的安全問題,僅僅檢查is_int就足夠了嗎?
即:
if (is_int($existingUserId)) {
}
這應該避免,我認爲任何問題 - 但我不是100%肯定
我正在寫一個控制器操作,它從一個窗體接受兩個輸入:一個現有的用戶ID和一個新的用戶標識。過濾輸入 - 是足夠的
兩者都應該是整數值。
爲了避免任何潛在的安全問題,僅僅檢查is_int就足夠了嗎?
即:
if (is_int($existingUserId)) {
}
這應該避免,我認爲任何問題 - 但我不是100%肯定
您應該使用is_numeric
而不是is_int
。
根據is_int
documentation:is_int('23') = bool(false)
。此外,文檔說明:
要測試變量是數字還是數字字符串(例如表單輸入,始終是字符串),您必須使用is_numeric()。
在大多數情況下,轉換爲int也不會對任何人造成傷害。 –
@JordanDoyle轉換爲int將簡單地將非數字值轉換爲「0」,這可能會產生意想不到的副作用。我建議演員,但只有在執行數字檢查後。 – Vulcan
那麼這將有助於發現空值和頑皮的字符串,並且在大多數情況下,MySQL中自動增量的id是1索引的,所以id不應爲零。 –