PHP可以(应该)我array_map filter_var到$ _POST

时间:2011-01-19 02:29:14

标签: php arrays post filter sanitize

我只是偶然发现了一些简洁的代码来快速过滤$_POST数据:

$post=array_map("filter_data",$_POST);

我已将它更新到新版本(在PHP 5.2之后)并且我已经

$post=array_map("filter_var",$_POST,array(516));  // 516 == 'unsafe_raw'

现在我是偏执狂;这似乎太容易了。所以

  • 对所有post数据执行此操作吗? (狡猾紧张的眼睛)
  • unsafe_raw是否为通用postget或Cookie数据的正确过滤器?

我应该补充一下,我只想尝试一般的消毒剂,主要是为了删除SQL注入。如果我有电子邮件地址或其他什么我可以稍后再过滤。任何想法/建议/惊恐的目光?

1 个答案:

答案 0 :(得分:2)

为了避免SQL注入,总是在将值插入查询字符串之前使用适用于您的数据库的函数,例如: mysql_real_escape_string。一个不特定于您的数据库的通用过滤器不能保证任何东西,并且可能只会过滤太多。

对于其他任何内容,例如电子邮件验证,请使用包含电子邮件地址的特定变量的特定过滤器。

此外,使用常量FILTER_UNSAFE_RAW,而不是其数值。