Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Opa, estou melhorando a segurança de um sistema e estou utilizando a função mysql_real_escape_string() para dados do tipo string, segue abaixo o trexo do código:
$type = strtolower(gettype($value));
switch ($type) {
case 'boolean':
if ($value === true) {
return '1';
} elseif ($valeu === false) {
return '0';
}
return !empty($value) ? 1 : 0;
break;
case 'integer':
case 'float':
case 'double':
if (is_numeric($value)) {
return $value;
}
break;
case 'null':
case 'string':
if (is_null($value) || empty($value)) {
$value = 'NULL';
}
return '\'' . mysql_real_escape_string($value, $this->connection) . '\'';
break;
}
todos os dados com aspas são escapados corretamente, mas quando executo o query e envia pro banco de dados, seja UPDATE, INSERT, vai sem o escape, por exemplo o SQL fica:
INSERT INTO questoes VALUES ('titulo aqui', 'esse testo \'contem\' aspas')
mas se olhar no banco de dados não tem aspas quando pego os dados com SELECT também vem sem aspas.
Minha dúvida é, tá escapando corretamente? se alguém enviar um SQL Injection vou correr o risco do SQL Injection funcionar?
Att,
Sérgio
Carregando comentários...