我正在審查我的所有代碼,並且在驗證用戶輸入前驗證用戶輸入的必要性有第二個想法。舉例來說,信用卡CVV的驗證:驗證之前驗證是否需要驗證?
// validation required?
if(!preg_match('/^[\d]{3,4}$/', $_POST['card_CVV']))
{
unset($_POST['card_CVV']);
$error++;
// verification
}
elseif($card_CVV != $_POST['card_CVV'])
{
$error++;
}
// pass verification
else
{
// process transaction
}
是否應該在未驗證的情況下進行驗證?
嗯,我想即使在這裏有注射可能。永遠和總是驗證和過濾用戶輸入 - 意味着你不應該在elseif中使用未經過濾的$ _POST'變量,對嗎?! – Anonymous
我不確定我完全理解驗證和驗證之間的區別。他們看起來事實上是同一件事情......您正在檢查輸入是否處於預期形式,通常是以相當簡單的方式進行,通常是在對這些輸入進行更嚴格的處理之前,向用戶返回錯誤消息。 – cdeszaq
@ Dan Surfrider,我不存儲用戶數據,是否仍然存在風險? –