php中的清理和验证有什么区别?

时间:2015-09-15 04:52:06

标签: php validation sanitization

我是一名初学PHP开发人员,正在处理有关PHP脚本注入的问题 幸运的是,PHP具有filter_varstrip_tags等功能,可以完美地完成这项工作。 但我不明白术语消毒和验证之间的区别 请解释我的区别,谢谢

2 个答案:

答案 0 :(得分:7)

验证是确保输入符合您的业务规则。如果没有,则拒绝输入。您可能希望用户为您提供一个号码,但如果您收到的不是数字,那么这就是验证错误。

而清理意味着确保输入的格式不会破坏其容器。这可能是分号(;)被用户错误地添加到输入中,因此当它被发送给您时,您可以删除/转义它。当根据用户输入处理数据库时,清理还用于避免任何导致数据损坏的尝试。

答案 1 :(得分:1)

清理从变量中删除所有非法字符,如$ email,如果您使用带有验证参数的filter_var,则检查它是否是有效的电子邮件地址。

$a = 'joe@example.org';

$sanitized_a = filter_var($a, FILTER_SANITIZE_EMAIL);
if (filter_var($sanitized_a, FILTER_VALIDATE_EMAIL)) {
    echo "This (a) sanitized email address is considered valid.\n";
}

请参阅此link以供参考。