sql >> Database >  >> RDS >> Mysql

Is het voldoende om mysqli_real_escape_string te gebruiken om mijn querystring te beveiligen?

Indien overal correct gebruikt is real_escape_string een optie. Maar overweeg de volgende code:

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

Veilig of niet? real_escape_string kan alleen worden gebruikt om tekenreeksen tussen aanhalingstekens te escapen. $page zou kunnen zijn 1 OR id IN (2,3,4,5,6,7,8,9) → geen aanhalingstekens, geen echte ontsnapping. Casten naar het juiste datatype (int) kan in dit geval helpen. U kunt beter voorbereide verklaringen gebruiken, ze zijn niet zo gemakkelijk te misbruiken.




  1. Hoe Tan() werkt in PostgreSQL

  2. tabel of weergave bestaat niet

  3. Hoe kan ik met Rails de db opvragen voor een totaal aantal en gegroepeerd per week?

  4. Hoe 2 of meer SQL-query's in PHP uit te voeren zonder tabellen samen te voegen