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

Làm cách nào để ngăn chặn việc đưa vào SQL bằng chuỗi truy vấn JSONB tùy ý được cung cấp bởi máy khách bên ngoài?

Bạn có thể cho phép người dùng chỉ định một đường dẫn trong tài liệu JSON, sau đó tham số hóa đường dẫn đó trong lệnh gọi hàm như json_extract_path_text . Nghĩa là, mệnh đề WHERE sẽ giống như sau:

WHERE json_extract_path_text(data, $1) = $2

Đối số đường dẫn chỉ là một chuỗi, được tham số hóa dễ dàng, mô tả các khóa để truyền xuống giá trị đã cho, ví dụ:'foo.bars[0].name' . Phía bên phải của mệnh đề sẽ được tham số hóa theo các quy tắc giống như bạn đang sử dụng để lọc cột cố định.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. làm thế nào để làm cho truy vấn này cũng trả về các hàng có giá trị đếm 0?

  2. Truy vấn PostgreSQL rất chậm với giới hạn 1

  3. NLTK có thể được sử dụng trong một thủ tục được lưu trữ trong Python Postgres không

  4. Postgres FK tham chiếu PK tổng hợp

  5. Thực hiện phép nối trái với phép nối kiểu cũ