2012-03-01 46 views
1

當我爲Web表單編寫驗證碼時,我通常假定字段的內容是有效的,並試圖證明它是無效的。假設該字段的內容是無效的,然後試圖證明它是有效的,這是否是一種更好的做法?驗證表單時,我應該假設一個字段有效或無效?

一個非常簡單的例子(僞代碼):

function isValid(formFieldValue, minLength, maxLength) { 
    valid = true; 

    fieldLength = length(formFieldValue); 

    if(fieldLength < minLength) { 
     valid = false; 
    } 

    if(fieldLength > maxLength) { 
     valid = false; 
    } 

    return valid; 
} 

它會更好地假設有問題的領域是無效的,並相應修改我的支票?

請注意 - 我不是在談論XSS保護或輸入過濾。我們永遠不能假定用戶輸入是安全的。我正在討論如何在表單字段中驗證最小/最大長度或有效的電子郵件地址等內容。

回答

0

我想當你只是談論像長度等事情時,它沒有太大的區別。但我會假設輸入無效,並證明它不是,因爲我對XSS輸入做了同樣的處理。

0

的一點是,是否所有的條件下運行與否。案例1:假設表單有效,然後通過檢查示例2的條件來檢查其無效性。案例2。假設一個表格無效,然後檢查兩個條件是否無效?

在這兩種情況下,您都必須檢查所有滿足的條件,因爲您要驗證所有的字段。因此,無論您在開始時是否認爲有效或無效,都無關緊要,我們主要檢查是否無效。