다양한 언어로 된 .NET, Java 및 기타 고급 데이터베이스 API는 데이터베이스 서버에 일반 텍스트 명령을 보내는 것과 달리 준비된 명령문 및 매개 변수 바인딩이라는 기술을 제공하는 경우가 많습니다. 제가 알고 싶은 것은 다음과 같은 문장을 실행할 때 일어나는 일입니다.매개 변수 바인딩 : 후드에서 어떤 일이 발생합니까?
SqlCommand cmd = new SqlCommand("GetMemberByID");
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter param = new SqlParameter("@ID", memberID);
para.DbType = DbType.Integer;
cmd.Parameters.Add(param);
나는 이것이 최선의 방법이라는 것을 알고 있습니다. SQL 주입 공격은 이러한 방식으로 최소화됩니다. 그러나 당신이이 진술을 실행할 때 두건의 밑에 정확하게 무엇이 일어나는가? 최종 결과는 여전히 SQL 안전 문자열입니까? 그렇지 않다면 최종 결과는 무엇입니까? 그리고 이것은 SQL 주입 공격을 막기에 충분합니까?