我只是偶然发现了一些简洁的代码来快速过滤$_POST
数据:
$post=array_map("filter_data",$_POST);
我已将它更新到新版本(在PHP 5.2之后)并且我已经
了$post=array_map("filter_var",$_POST,array(516)); // 516 == 'unsafe_raw'
现在我是偏执狂;这似乎太容易了。所以
post
数据执行此操作吗? (狡猾紧张的眼睛)unsafe_raw
是否为通用post
,get
或Cookie数据的正确过滤器?我应该补充一下,我只想尝试一般的消毒剂,主要是为了删除SQL注入。如果我有电子邮件地址或其他什么我可以稍后再过滤。任何想法/建议/惊恐的目光?
答案 0 :(得分:2)
为了避免SQL注入,总是在将值插入查询字符串之前使用适用于您的数据库的函数,例如: mysql_real_escape_string
。一个不特定于您的数据库的通用过滤器不能保证任何东西,并且可能只会过滤太多。
对于其他任何内容,例如电子邮件验证,请使用包含电子邮件地址的特定变量的特定过滤器。
此外,使用常量FILTER_UNSAFE_RAW
,而不是其数值。