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);

: