php - 循环通过 GET、POST 和 COOKIE 进行清理?

标签 php mysql validation sanitization

考虑到每个人总是担心用户数据(这是正确的),当你得到它时简单地遍历每个外部数组并应用 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/

相关文章:

mysql - 在mysql中连接两列

mysql左连接/右连接3张表

mysql - 如何在 T-SQL 中执行 atan2 函数?

php - 验证开始日期应小于 Yii 中的结束日期

c++ - 有效 future 与默认构建 future

php - 使用 PHP 将数据添加到特定列中的 csv 文件

使用ajax的php-mysql登录系统

c++ - 从用户那里获取 "yyyy/mm/dd, hh:mm"形式的日期输入并在 C++ 中验证日期?

javascript - responseText 数组无法正确解析

php - 如何删除 WordPress 中多余的 <p>?