sql >> Databáze >  >> RDS >> PostgreSQL

Brání připravený příkaz pg_prepare() (ne PDO) SQL-Injection?

Připravený příkaz je bezpečný před SQL injection, protože nikdo nemůže změnit plán dotazů po je to připraveno. Ale pokud je váš příkaz již kompromitován, stále trpíte injekcí SQL:

<?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. Vyberte řádky s více značkami... existuje lepší způsob?

  2. Zpětné skenování indexu SQL Server:Porozumění, ladění

  3. 3 způsoby, jak převést celé číslo na desítkové v SQL Server

  4. Jak zobrazím chybu MySQL v PHP pro dlouhý dotaz, který závisí na vstupu uživatele?