php 中的清理和验证有什么区别?
what is the difference between sanitizing and validation in php?
我是一名新手 PHP 开发人员,正在处理有关 PHP 脚本注入的问题。
幸运的是 PHP 有像 filter_var
和 strip_tags
这样的功能,它们完美地完成了我的工作。
但我不明白术语 Sanitize 和 Validate
之间的区别
请解释一下区别,谢谢
Sanitize 从 $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 也供您参考。
验证就是确保输入符合您的业务规则。如果不是,则拒绝输入。您可能期望用户为您提供一个数字,但如果您收到的不是数字,那就是验证错误。
而清理意味着确保输入的格式不会破坏其容器。这可能是用户错误地添加到输入中的分号 (;),因此当它被发送给您时,您 remove/escape 为他添加了分号。清理还用于避免在根据用户输入处理数据库时导致数据损坏的任何尝试。
我是一名新手 PHP 开发人员,正在处理有关 PHP 脚本注入的问题。
幸运的是 PHP 有像 filter_var
和 strip_tags
这样的功能,它们完美地完成了我的工作。
但我不明白术语 Sanitize 和 Validate
之间的区别
请解释一下区别,谢谢
Sanitize 从 $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 也供您参考。
验证就是确保输入符合您的业务规则。如果不是,则拒绝输入。您可能期望用户为您提供一个数字,但如果您收到的不是数字,那就是验证错误。
而清理意味着确保输入的格式不会破坏其容器。这可能是用户错误地添加到输入中的分号 (;),因此当它被发送给您时,您 remove/escape 为他添加了分号。清理还用于避免在根据用户输入处理数据库时导致数据损坏的任何尝试。