Cách chống lỗi sql injection trong C#

0 thích 0 không thích
238 lượt xem
đã hỏi 8 Tháng 1, 2016 bởi Thảo Meo (3,920 điểm)

Cách phòng chống lỗi Sql injection thế nào trong lập trình C# hay VB.NET

    

1 câu trả lời

0 thích 0 không thích
đã trả lời 9 Tháng 1, 2016 bởi Thảo Meo (3,920 điểm)
được bầu chọn là câu hỏi hay nhất 9 Tháng 1, 2016 bởi Mr. Cùi Bắp
 
Câu trả lời hay nhất

Khi viết câu lệnh sql trong C# nếu viết bình thường ta sẽ dính lỗi sql injection:
ví dụ: 

Code:

String name = textBox1.text();
SqlConnection connection = new SqlConnection(connectionString);
SqlCommand command = new SqlCommand("SELECT * FROM user WHERE (Name ='" & name & "')" ,connection);

vì vậy khi nhập một số chuỗi đặc biệt có thể dẫn đến lỗi sql injection, ví dụ nhập "1'OR 1='1",...
ta nên dùng sqlParameter để tránh lỗi này.

Code:

String name = textBox1.text();
SqlConnection connection = new SqlConnection(connectionString);
SqlCommand command = new SqlCommand("SELECT * FROM user WHERE Name LIKE @Name",connection);
command.Parameters.Add(new SqlParameter("Name", name));

với việc dùng sql parameter thì các tham số truyền vào sẽ được kiểm soát nhằm tránh lỗi sql injection.

...