0

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

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

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

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

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

  • 应该对所有post数据都这样做吗?(狡猾的紧张的眼睛)
  • unsafe_raw通用、、或 cookie 数据的过滤器post是否get正确?

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

4

1 回答 1

2

为避免 SQL 注入,请始终在将值插入查询字符串之前为您的数据库使用适当的函数,例如mysql_real_escape_string. 不是特定于您的数据库的通用过滤器不能保证任何事情,并且可能只会过滤太多。

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

另外,使用常量FILTER_UNSAFE_RAW,而不是它的数值。

于 2011-01-19T02:36:08.763 回答