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

SQLParameter ngăn SQL Injection như thế nào?

Về cơ bản, khi bạn thực hiện một SQLCommand sử dụng SQLParameters , các tham số không bao giờ được chèn trực tiếp vào câu lệnh. Thay vào đó, một thủ tục được hệ thống lưu trữ có tên là sp_executesql được gọi và cho chuỗi SQL và mảng tham số.

Khi được sử dụng như vậy, các tham số được tách biệt và được coi là dữ liệu, thay vì phải được phân tích cú pháp ra khỏi câu lệnh (và do đó có thể thay đổi nó), vì vậy những gì tham số chứa không bao giờ có thể được "thực thi". Bạn sẽ chỉ nhận được một lỗi lớn là giá trị tham số không hợp lệ theo một cách nào đó.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ví dụ về Chuyển đổi "date" thành "datetime2" trong SQL Server (T-SQL)

  2. Tạo một DIE đối tượng trong SQL Server

  3. Cài đặt Trình điều khiển JDBC của Microsoft SQL Server trong các công cụ Tích hợp dữ liệu Pentaho và Máy chủ BA

  4. Làm cách nào để bạn loại bỏ tất cả các kết nối hiện tại đến cơ sở dữ liệu SQL Server 2005?

  5. Chú ý người dùng đang chạy SQL Server 2008 và SQL Server 2008 R2