2012-07-02 33 views
2

什麼是我們可以在PHP編碼中使用的最好,最安全和用戶友好的易於使用的驗證器類或插件來驗證常用用戶輸入,如電子郵件地址,URL,整數等?用於輸入驗證的最佳泛型類或包是什麼?

例如http://code.google.com/p/owasp-esapi-php/。有沒有更好的辦法?

或正在使用filter_input最佳方式?例如

$value = filter_input(INPUT_GET, "value", FILTER_VALIDATE_INT, 
     array("options" => array("min_range" => 15, "max_range" => 20))); 

還是自定義編碼?例如

if (isset($_GET["value"])) { 
    $value = $_GET["value"]; 
} 
else { 
    $value = false; 
} 
if (is_numeric($value) && ($value >= 15 && $value <= 20)) { 
    // run my code 
} 
else { 
    // handle the issue 
} 

對此的專家意見?我更喜歡懶惰的風格,如:

filer_input($POST); 

是否有類似的東西?

+0

有沒有這樣的事情作爲「通用過濾器功能」\ *。 (\ * *除非*您想用所有類型加前綴。) – Ryan

回答

0

如果輸入驗證是一個尺寸適合所有人,就少了一大堆XSS和SQLI攻擊:)

這是一個很好的做法無論是使用過濾器(優點是它建立明確的規則隨PHP運送)或類似的第三方庫(過濾器有一些quircks)。規則可以在數組語法(如filter_input_array或filter_var_array)中用於更常用的規則(自定義正則表達式等)

與自定義編碼相比,使用過濾器庫會減少代碼,從而減少潛在的錯誤。

相關問題