sql >> Database teknologi >  >> RDS >> PostgreSQL

Forhindrer pg_prepare() forberedt sætning (ikke PDO) SQL-injektion?

En forberedt sætning er sikker mod SQL-injektion, fordi ingen kan ændre forespørgselsplanen efter det er forberedt. Men hvis din erklæring allerede er kompromitteret, lider du stadig af SQL-injektion:

<?php 
// how NOT to construct your SQL....
$query = 'SELECT * FROM user WHERE login=$1 and password=md5($2) LIMIT '. $_POST['limit']; -- injection!
$result = pg_prepare($dbconn, "", $query);
$result = pg_execute($dbconn, "", array($_POST["user"], $_POST["password"]));
if (pg_num_rows($result) < 1) {
  die ("failure");
}
?>


  1. Fjern dublerede rækker i en tabel uden primærnøgle

  2. pg_config viser 9.4 i stedet for 9.3

  3. Overfør H2-data til PostgreSQL

  4. Hvordan laver rapporter med specifikke datoer i mysql