Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

O uso de mysqli_real_escape_string é suficiente para proteger minha string de consulta?


Se usado em todos os lugares corretamente, real_escape_string é uma opção. Mas considere o seguinte código:
$page = $_GET['page'];
$sql = 'SELECT `name` FROM `user` WHERE `id` = ' . mysqli_real_escape_string($page);

Seguro ou não? real_escape_string só pode ser usado para escapar de strings entre aspas. $page pode ser 1 OR id IN (2,3,4,5,6,7,8,9) → sem aspas, sem escape real. A conversão para o tipo de dados correto (int) pode ajudar nesse caso. É melhor usar declarações preparadas, elas não são tão fáceis de serem mal utilizadas.