用于输入验证的最佳通用类或包是什么?

时间:2012-07-02 00:27:12

标签: php validation

什么是最好,最安全和用户友好的易于使用的验证器类或插件,我们可以在PHP编码中使用它来验证常见的用户输入,如电子邮件地址,URL,整数等?

e.g。 http://code.google.com/p/owasp-esapi-php/。还有更好的方法吗?

或者使用filter_input最好的方式? e.g。

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

还是自定义编码? e.g。

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);

有类似的东西吗?

2 个答案:

答案 0 :(得分:1)

如果您不熟悉这些库,可能不是用户(开发人员)友好,但我认为您应该真正关注Symfony2 Validator Component。它可以通过Composer轻松安装,可以单独使用,并且在这里有很好的文档:http://symfony.com/doc/current/book/validation.html,可以在这里找到GitHub存储库:https://github.com/symfony/Validator

答案 1 :(得分:0)

如果输入验证是一刀切的话,那么XSS和SQLi攻击会减少很多:)

使用任一过滤器(优点是它附带php)或类似的第三方库(过滤器确实有一些怪癖)设置显式规则是一个好习惯。当您在数组语法中使用规则(如filter_input_array或filter_var_array)时,可以重用规则,以获取更常用的规则(自定义正则表达式等)

与自定义编码相比,使用过滤器库可以减少代码,从而减少潜在的错误。