考虑到每个人总是担心用户数据(这是正确的),当你得到它时简单地遍历每个外部数组并应用 mysql_real_escape_string() 就足够了吗?
我很好奇这是否是个坏主意。
类似于:
function getExternalData($type='GET') { $type = strtoupper($type); $data = $_$type; foreach($data as $key => $value) { $clean[$key] = mysql_real_escape_string($value); } return $clean; }
这将使所有数据在数据库中安全使用。但是,这样做的缺点是什么?
最佳答案
主要缺点是如果您必须处理输入,例如为了解析标记,您必须取消转义输入然后不要忘记重新转义它。而且,它的效率很低。查询占位符是一种非常好的防止 SQL 注入(inject)的方法。
至于清理本身(不仅针对 SQL),您应该查看 Filter extension ,在 PHP 5.2 和 PECL 5.1 中默认可用。
关于php - 循环通过 GET、POST 和 COOKIE 进行清理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1188714/