sql >> Database teknologi >  >> RDS >> Mysql

Er det nok at bruge mysqli_real_escape_string til at sikre min forespørgselsstreng?

Hvis det bruges overalt korrekt, er real_escape_string en mulighed. Men overvej følgende kode:

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

Sikker eller ej? real_escape_streng kan kun bruges til at undslippe strenge inden for anførselstegn. $page kunne være 1 OR id IN (2,3,4,5,6,7,8,9) → ingen anførselstegn, ingen reel flugt. Casting til den korrekte datatype (int) kan måske hjælpe i dette tilfælde. Du er bedre stillet ved at bruge forberedte udsagn, de er ikke så lette at misbruge.




  1. Kolonne Butiksplaner

  2. Brug MySQLi Prepared Statement til at indtaste dynamiske, flere rækker i databasen?

  3. Sådan tvinges PHP til at læse nye linjer og returnerer som

  4. Hvilken DB til store databaser?