Je développe actuellement une classe de base de données pour un projet sur lequel j'ai travaillé. Je voudrais savoir si la fonction suivante a des trous ou des erreurs qui permettraient à quelqu'un d'utiliser l'injection MySQL.Cette validation d'entrée sql est-elle sécurisée?
public function sql_validate($var)
{
if (is_null($var))
{
return NULL;
}
else if (is_string($var))
{
return "'" . $this->sql_escape($var) . "'";
}
else if (is_bool($var))
{
return intval($var);
}
else
{
return $var;
}
}
Voici la fonction sql_escape qui est appelée pour les chaînes.
private function sql_escape($string)
{
if (!$this->db_connection)
{
return @mysql_real_escape_string($string);
}
return @mysql_real_escape_string($string, $this->db_connection);
}