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

Tôi có phải đề phòng việc tiêm SQL nếu tôi sử dụng trình đơn thả xuống không?

Có, bạn cần bảo vệ khỏi điều này.

Hãy để tôi chỉ cho bạn lý do tại sao sử dụng bảng điều khiển dành cho nhà phát triển của Firefox:

Nếu bạn không làm sạch dữ liệu này, cơ sở dữ liệu của bạn sẽ bị phá hủy. (Đây có thể không phải là một câu lệnh SQL hoàn toàn hợp lệ, nhưng tôi hy vọng tôi đã hiểu rõ ý của mình.)

Chỉ vì bạn đã giới hạn những tùy chọn có sẵn trong trình đơn thả xuống của mình không có nghĩa là bạn đã giới hạn dữ liệu tôi có thể gửi cho máy chủ của bạn.

Nếu bạn đã cố gắng hạn chế hành vi này hơn nữa bằng cách sử dụng hành vi trên trang của mình, các tùy chọn của tôi bao gồm vô hiệu hóa hành vi đó hoặc chỉ viết một yêu cầu HTTP tùy chỉnh đến máy chủ của bạn để bắt chước gửi biểu mẫu này. Có một công cụ được gọi là curl được sử dụng cho chính xác điều đó và tôi nghĩ rằng lệnh để gửi SQL injection này vẫn sẽ trông giống như sau:

curl --data "size=%27%29%3B%20DROP%20TABLE%20*%3B%20--"  http://www.example.com/profile/save

(Đây có thể không phải là lệnh curl hoàn toàn hợp lệ, nhưng một lần nữa, tôi hy vọng tôi đã hiểu rõ ý của mình.)

Vì vậy, tôi sẽ nhắc lại:

KHÔNG BAO GIỜ tin tưởng đầu vào của người dùng. LUÔN LUÔN bảo vệ bạn.

Đừng cho rằng bất kỳ đầu vào của người dùng nào là an toàn. Nó có khả năng không an toàn ngay cả khi nó đến thông qua một số phương tiện khác ngoài biểu mẫu. Không ai trong số đó đủ tin cậy để từ bỏ việc bảo vệ bạn khỏi sự tiêm nhiễm SQL.



  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 để đảo ngược kỹ sư một cơ sở dữ liệu trong MySQL Workbench

  2. Hibernate có thể hoạt động với cú pháp ON DUPLICATE KEY UPDATE của MySQL không?

  3. Tự động mở rộng quy mô với Amazon Aurora Serverless

  4. Cách sửa chữa cơ sở dữ liệu và bảng MySQL

  5. Đối lập với GROUP_CONCAT trong MySQL là gì?