홈>
사용자 입력의 이름을 딴 데이터베이스를 만들기 위해 C # 함수를 실행하고 있습니다. SQL Injection을 방지하고 싶습니다. 일반적으로 매개 변수를 사용하지만 매개 변수는 데이터 조작이 아닌 데이터 조작에만 작동합니다. 코드는 다음과 같습니다 :
using (var conn = new MySqlConnection(connStr))
{
conn.Open();
var comm = conn.CreateCommand();
comm.CommandText = "CREATE DATABASE IF NOT EXISTS @name";
comm.Parameters.AddWithValue("@name", id);
comm.ExecuteNonQuery();
}
데이터베이스를 생성하는 데 매개 변수가 작동하지 않기 때문에 주입을 방지하기 위해 입력을 살균하는 가장 좋은 방법은 무엇입니까?
감사합니다!
MySqlHelper.EscapeString("")
사용 매개 변수를 사용하지 않거나 사용할 수없는 경우매개 변수를 정의하면 mySQL이 내부를 사용합니다.
명령은 다음과 같아야합니다.