PHP可以(应该)将数组\u映射过滤器\u var到$\u POST

PHP可以(应该)将数组\u映射过滤器\u var到$\u POST,php,arrays,post,filter,sanitize,Php,Arrays,Post,Filter,Sanitize,我刚刚偶然发现了这段简洁的代码,可以快速过滤$\u POST数据: $post=array_map("filter_data",$_POST); 我已经将其更新为新版本(PHP5.2之后),并且 $post=array_map("filter_var",$_POST,array(516)); // 516 == 'unsafe_raw' 现在我是偏执狂;这似乎太容易了。所以 我是否应该对所有post数据执行此操作?(狡黠紧张的眼睛) safe\u raw是否是通用post、get或coo

我刚刚偶然发现了这段简洁的代码,可以快速过滤
$\u POST
数据:

$post=array_map("filter_data",$_POST);
我已经将其更新为新版本(PHP5.2之后),并且

$post=array_map("filter_var",$_POST,array(516));  // 516 == 'unsafe_raw'
现在我是偏执狂;这似乎太容易了。所以

  • 我是否应该对所有
    post
    数据执行此操作?(狡黠紧张的眼睛)
  • safe\u raw
    是否是通用
    post
    get
    或cookie数据的正确筛选器
我应该补充一点,我只是在尝试一种通用的消毒剂,主要是为了消除SQL注入。如果我有电子邮件地址或其他信息,我可以稍后再进行筛选。有什么想法/建议/恐惧的目光吗?

为了避免SQL注入,请在将值插入查询字符串之前,始终为数据库使用适当的函数,例如
mysql\u real\u escape\u string
。不特定于数据库的常规过滤器不能保证任何东西,可能只会过滤太多

对于任何其他内容,如电子邮件验证,请对保存电子邮件地址的特定变量使用特定筛选器


另外,使用常量
过滤器\u UNSAFE\u RAW
,而不是其数值。

确定。我有一个adodb层,它在类级别进行过滤。谢谢你的提示。(对于那些稍后阅读本文的人,我已经跳过了adodb,现在强烈推荐PHP的PDO工具,它们也有同样的功能,但是内置在PHP中。)