PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Czy przygotowana instrukcja pg_prepare() (nie PDO) zapobiega SQL-Injection?

Przygotowana instrukcja jest bezpieczna przed wstrzyknięciem SQL, ponieważ nikt nie może zmienić kwerendy po jest przygotowany. Ale jeśli Twoje oświadczenie jest już naruszone, nadal cierpisz z powodu wstrzyknięcia 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Właściwy sposób na dostęp do ostatniego wiersza dla każdego indywidualnego identyfikatora?

  2. Jak wyłączyć integralność referencyjną w Postgres 8.2?

  3. Pula c3p0 nie może nawiązać połączenia. Jak to debugować?

  4. Migracja ActiveRecord nie wypełnia zmaterializowanego widoku Postgres

  5. Utwórz rolę PostgreSQL (użytkownika), jeśli nie istnieje