quinta-feira, 11 de julho de 2013

Caracteres Especiais PHP - mysql_real_escape_string


Escapa os caracteres especiais numa string para usar em um comando SQL, levando em conta o conjunto atual de caracteres.

Ex:

$sql = sprintf("INSERT INTO tabela (id,descricao)
  VALUES ('%s','%s')",
  mysql_real_escape_string($id),
  mysql_real_escape_string($descricao),
 mysql_query($sql);
}

mysql_real_escape_string  poderá lhe ajudar em muita coisa, como fugir do erro da inserção do apostrofo, mas não lhe garante em  um SQL injection.
Para isso use preg_replace, assim você irá escapar dos caracteres \ %, que podem ser usados em um SQL injection.

$param = preg_replace( '/\\\\/u', '\\\\\\\\', $param );
$param = mysql_real_escape_string($param);
$param = preg_replace( '/([%_])/u', '\\\\$1', $param );

Nenhum comentário:

Postar um comentário