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

有没有类似的东西?

4

2 回答 2

1

如果您不熟悉此类库,它可能对用户(开发人员)不友好,但我认为您真的应该看看Symfony2 Validator Component. 它可以通过 Composer 轻松安装,可以独立使用,并且在此处有出色的文档:http ://symfony.com/doc/current/book/validation.html,GitHub 存储库可以在这里找到:https ://github.com/ symfony/验证器

于 2012-07-02T00:37:43.470 回答
0

如果输入验证是万能的,那么 XSS 和 SQLi 攻击就会少很多:)

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

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

于 2012-07-02T00:39:25.527 回答