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

Ngăn chặn SQL Injection với truy vấn SQL ALTER USER động

Bạn không nên cố gắng ngăn chặn SQL injection chỉ ở cấp cơ sở dữ liệu. Khi họ đến đó, họ gần như đã có bạn. Bạn nên sử dụng các tham số, nhập mặt nạ và loại bỏ các ký tự xấu đã có trong lớp trên. Các công cụ (Framework?) Như Entity Framework tự động xóa các ký tự nguy hiểm.

Sử dụng DBMS_ASSERT.ENQUOTE_NAME đang hoạt động rất tốt ở đây, nhưng tôi cũng khuyên bạn nên làm điều này ở các lớp ở trên.

Quy tắc chung (bạn làm theo tại đây): Sử dụng các cơ chế bảo mật đã được thiết lập và chứng minh, không phát minh lại chúng!

Hơn nữa, một tuyên bố như

select * from users where username = 'IAm"WayUp';

là hoàn toàn hợp pháp và không nguy hiểm.

Và làm thế nào để bạn gọi hàm / thủ tục trong DB? Ở đó bạn cũng thô tục, phải không ?.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Reader.Read () không thể đọc các hàng mặc dù nó có các hàng

  2. Hàm NANVL () trong Oracle

  3. Oracle APEX:menu bật lên

  4. Cách chạy tập lệnh SQL Plus trong PowerShell

  5. Phân tích cú pháp bảng HTML với Oracle