PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Câu lệnh chuẩn bị pg_prepare () (không phải PDO) có ngăn được SQL-Injection không?

Câu lệnh đã chuẩn bị an toàn trước SQL injection vì không ai có thể thay đổi sơ đồ truy vấn sau nó đã được chuẩn bị. Tuy nhiên, nếu câu lệnh của bạn đã bị xâm phạm, bạn vẫn bị chèn 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. Số nguyên nằm ngoài phạm vi trên Postgres DB

  2. Cách nhận giá trị trung bình cho các khoảng thời gian trong Postgres

  3. Kết nối với cơ sở dữ liệu PostgreSQL thông qua đường hầm SSH bằng Python

  4. Postgresql, cập nhật hoặc chèn dựa trên từng trường hợp

  5. Apache Cayenne / PostgreSQL:quá nhiều máy khách đã bị lỗi