SQL 쿼리를 작성할 때 문자열 연결 대신 매개변수를 사용하십시오.
번역/.NET Tip of The Day 2007. 7. 20. 16:19원문 : Use parameters instead of string concatenation for forming SQL queries
문자열 연결은 약간의 트릭만 사용하면 잘못된 SQL 문장이 실행될 수 있기 때문에(SQL injection attack) 안전한 방법이 아닙니다. 가능하다면 매개변수를 사용하십시오.
나쁜 코드:
SqlCommand command = new SqlCommand("SELECT COUNT(*) FROM Accounts WHERE Login='" + login + "' AND Password='" + password + "'", conn);
좋은 코드:
SqlCommand command = new SqlCommand("SELECT COUNT(*) FROM Accounts WHERE Login=@login AND Password=@password", conn);
SqlParameter param = new SqlParameter("login", SqlDbType.VarChar, 100);
param.Value = login;
command.Parameters.Add(param);
param = new SqlParameter("password", SqlDbType.VarChar, 100);
param.Value = password;
command.Parameters.Add(param);