Mysql
 sql >> Base de données >  >> RDS >> Mysql

L'utilisation de mysqli_real_escape_string est-elle suffisante pour sécuriser ma chaîne de requête ?

S'il est utilisé partout correctement, real_escape_string est une option. Mais considérez le code suivant :

$page = $_GET['page'];
$sql = 'SELECT `name` FROM `user` WHERE `id` = ' . mysqli_real_escape_string($page);

Sûr ou pas ? real_escape_chaîne ne peut être utilisé que pour échapper des chaînes entre guillemets. $page peut être 1 OR id IN (2,3,4,5,6,7,8,9) → pas de guillemets, pas d'échappement réel. La conversion vers le type de données correct (int) peut aider dans ce cas. Vous feriez mieux d'utiliser des instructions préparées, elles ne sont pas aussi faciles à utiliser à mauvais escient.