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

C # và MySQL .NET Connector - Bất kỳ cách nào để ngăn chặn các cuộc tấn công SQL Injection trong một lớp chung?

Việc tham số hóa rất dễ thực hiện. Dễ dàng hơn nhiều so với việc xóa các truy vấn SQL và ít lộn xộn hoặc dễ bị lỗi hơn so với thoát thủ công.

Bản sao / dán được chỉnh sửa một chút từ trang hướng dẫn này bởi vì tôi cảm thấy lười biếng:

// User input here
Console.WriteLine("Enter a continent e.g. 'North America', 'Europe': ");
string userInput = Console.ReadLine();

string sql = "SELECT Name, HeadOfState FROM Country WHERE [email protected]";
MySqlCommand cmd = new MySqlCommand(sql, conn);
cmd.Parameters.AddWithValue("@Continent", userInput);

using (MySqlDataReader dr = cmd.ExecuteReader())
{
    // etc.
}

Điều đó không quá khó, 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. Các cột trong bảng có Khóa ngoại có thể là NULL không?

  2. Tùy chọn không được hỗ trợ được cung cấp cho mysql_options ()

  3. Lỗi cú pháp với IF EXISTS UPDATE ELSE INSERT

  4. Làm cách nào để chèn hàng mới vào cơ sở dữ liệu với cột AUTO_INCREMENT mà không chỉ định tên cột?

  5. Ứng dụng đơn giản nhưng nặng, tiêu tốn nhiều tài nguyên. Làm thế nào để Tối ưu hóa?