업데이트 : this preexisting question, and its answers,도 참조하십시오.이 질문은 사실상 복제본입니다.매개 변수가있는 쿼리를 사용할 수없는 경우 SQL 문자열을 이스케이프합니까?
나는 SQL 문
예를 들어,의 WHERE 조건 단편 소요 타사 API를 사용하고 있습니다 ThirdPartyFunction(where:"Category = 'abc'", top:5)
UI 또는 웹 서비스를 통해 전달되는 문자열이 있으며 SQL 주입 공격을 방지해야합니다.
매개 변수화 된 쿼리를 사용하지 않고 .NET 프레임 워크에서 SQL 문자열 (내가 아는)을 이스케이프 처리하는 대체 방법이 없으면 SQL 문자열을 수동으로 이스케이프 처리해야합니다.
나는 탈출 방법을 쓰는 가장 좋은 방법에 대한 아이디어가 있지만 가장 안전한 해결책을 찾고 있습니다.
타사 API가 이미 클렌징을 수행하지 않습니까? 그들이 자신의 SQL과 유사한 질의어 (NQL)를 지원하는 NHibernate와 같은 것을 사용한다면, 당신은 자신의 클렌징을 할 필요가 없을 것입니다. –
[매개 변수없이 SQL 주입 방지] (http://stackoverflow.com/questions/910465/avoiding-sql-injection-without-parameters) 및 [SQL 인용 부호를 사용하여 작은 따옴표 및 주변 사용자 입력을 이스케이프하여 보호 할 수 있습니까? 작은 따옴표?] (http://stackoverflow.com/q/139199/513811) –
@Martin - 네, 대답도 있습니다. 게시하기 전에 검색 할 때 찾지 못했습니다. –