PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Предотвратява ли pg_prepare() подготвен оператор (не PDO) SQL-инжектиране?

Подготвеният оператор е безопасен от SQL инжектиране, защото никой не може да промени плана на заявката след приготвено е. Но ако вашето изявление вече е компрометирано, все още страдате от 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. Динамичен одит на данни с тригер PostgreSQL

  2. celery задача не може да повтори множество редове от postgresql база данни с python

  3. Достъп до външни XML файлове като променливи в PSQL скрипт (източник от bash скрипт)

  4. Актуализация на Postgresql с присъединяване

  5. PostgreSQL/performance един общ курсор или създаване за всяка заявка