PHP filter_var使用建议

时间:2015-11-23 08:20:23

标签: php validation security

PHPs filter_var函数提供验证和清洁。是否建议将它们一起使用,还是应该单独使用,即输入验证,输出卫生处理?

让我假装我希望用户提交包含号码的表单。根据{{​​3}}我应首先清理数字,然后验证输出,谢谢:

$number = filter_var($_POST['number'], FILTER_SANITIZE_NUMBER_INT);
if (filter_var($number, FILTER_VALIDATE_INT) !== false) {
    // Put number in database, or whatever.
}

但是有必要在输入上同时运行吗?卫生处理不会返回布尔值假,或验证会接受的东西吗?

我通常先验证,然后进行消毒以确保我的输入仅包含验证的内容(即,不是字母后跟字母,如“35p”),但我一直怀疑是什么意思实际上是这样做的“正确”方式,因为我不知道filter_var是如何在内部工作的,而且我找不到很多关于它的内容。

1 个答案:

答案 0 :(得分:0)

没有必要同时运行

if (filter_var($_POST['number'], FILTER_VALIDATE_INT) !== false) {
        // Put number in database, or whatever.

        echo "hi";
    }