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

Các phương pháp hay nhất để ngăn chặn việc đưa SQL vào node-mysql là gì?

Hãy nhớ rằng việc đưa vào SQL là do các chuỗi thù địch được hiểu là các lệnh, không phải bởi các lệnh chặn. Bạn có chắc chắn rằng bạn đang lấy lại chuỗi ban đầu, không phải là một phiên bản đã được chuỗi không?

Ví dụ:có sự khác biệt rất lớn giữa hai điều này:"test""'test'" .

Nói chung, chỉ các ký tự có hại mới được thoát, các ký tự còn lại được giữ nguyên.

Tốt nhất nên tránh sử dụng trình điều khiển cấp thấp. Hãy thử và sử dụng thư viện như Sequelize để cung cấp một số trừu tượng và hỗ trợ nhiều hơn. Mô-đun đó hỗ trợ các câu lệnh trình giữ chỗ thường giúp thoát khỏi vấn đề không phải là vấn đề, nó được xử lý tự động.

Xem phần về truy vấn thô có thay thế nơi bạn có khả năng làm điều này:

sequelize.query('SELECT * FROM projects WHERE status = ?',
  { replacements: ['active'], type: sequelize.QueryTypes.SELECT }
).then(function(projects) {
  console.log(projects)
})

Không có nguy cơ dữ liệu người dùng bị rò rỉ bởi vì bạn đã cung cấp nó dưới dạng một giá trị rõ ràng được xử lý đúng cách, không phải là một chuỗi nội tuyến trong truy vấn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chỉ xuất hàng có giá trị null nếu không có cùng hàng với giá trị khác rỗng

  2. làm thế nào để sử dụng một like với một tham gia trong sql?

  3. Tham chiếu đến các nhóm trong MySQL regex?

  4. MySQL tính toán tỷ lệ phần trăm của hai tổng được tính toán khác bao gồm một nhóm theo tháng

  5. Sự cố trong PHP khi nối các bảng có các cột trùng tên