sql >> Databasteknik >  >> RDS >> PostgreSQL

Förhindrar pg_prepare() förberedd sats (inte PDO) SQL-injektion?

En förberedd sats är säker från SQL-injektion eftersom ingen kan ändra frågeplanen efter den är förberedd. Men om ditt uttalande redan är komprometterat lider du fortfarande av 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. Infoga primärnyckel för automatisk ökning i befintlig tabell

  2. Hur verifierar man att ett arkiv producerat av pg_dump archive är OK och giltigt?

  3. Praktiskt processorval för SQL Server 2014/2016 OLTP-arbetsbelastningar

  4. PHP / SQL, enkelt välj var får värdet som kolumn