Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Reicht die Verwendung von mysqli_real_escape_string aus, um meine Abfragezeichenfolge zu sichern?

Wenn überall richtig verwendet, ist real_escape_string eine Option. Aber betrachten Sie den folgenden Code:

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

Sicher oder nicht? real_escape_Zeichenfolge kann nur verwendet werden, um Zeichenfolgen in Anführungszeichen zu maskieren. $page könnte 1 OR id IN (2,3,4,5,6,7,8,9) sein → keine Anführungszeichen, kein echtes Entkommen. In diesem Fall kann es hilfreich sein, in den richtigen Datentyp (int) umzuwandeln. Verwenden Sie besser vorbereitete Anweisungen, da diese nicht so leicht missbraucht werden können.