PHP函数来清理所有数据

Lie*_*nau 1 php mysql sql-injection

清理可能被sqlinjected的所有数据是一个好的或愚蠢的想法吗?我写了一个应该这样做的功能,但是我从来没有看过它,并且想知道这是不是一个糟糕的主意.我写的功能:

function sanitizeData()
{
    $_SERVER['HTTP_USER_AGENT'] = mysql_real_escape_string($_SERVER['HTTP_USER_AGENT']);
    foreach(array_keys($_COOKIE) as $key)
    {
          $_COOKIE[$key] = mysql_real_escape_string($_COOKIE[$key]);
    }
    foreach(array_keys($_POST) as $key)
    {
          $_POST[$key] = mysql_real_escape_string($_POST[$key]);
    }    
    foreach(array_keys($_GET) as $key)
    {
          $_GET[$key] = mysql_real_escape_string($_GET[$key]);
    }
}
Run Code Online (Sandbox Code Playgroud)

Mat*_*hen 6

一个坏主意; 这基本上是弃用的magic_quotes的另一个版本.大多数数据可能不会最终进入数据库,因此您最终会不必要地逃避,并且可能会双重逃逸.

而是根据需要使用预准备语句.看mysqli_stmt(mysqli的一部分)和PDOStatement(PDO的一部分).