집 >데이터 베이스 >MySQL 튜토리얼 >SQL 주입을 방지하기 위해 SQL LIKE 문에서 매개 변수를 올바르게 사용하려면 어떻게 해야 합니까?
SQL용 LIKE 문에 매개변수 사용
문제 설명:
검색 생성 중 함수, SQL 주입 공격을 방지하기 위해 매개 변수를 사용하는 쿼리는 구현됨:
SELECT * FROM compliance_corner WHERE (body LIKE '%@query%') OR (title LIKE '%@query%')
그러나 이 쿼리는 결과를 반환하지 않습니다.
답변:
매개변수는 LIKE 문에서 효과적으로 사용될 수 있습니다. SQL 주입 공격을 방지합니다. 그러나 원래 쿼리에 사용된 구문은 올바르지 않습니다.
수정된 구문:
LIKE 문과 함께 매개변수를 사용하는 올바른 구문은 다음과 같습니다.
SELECT * FROM compliance_corner WHERE (body LIKE @query) OR (title LIKE @query)
이 경우 매개변수는 "@query"로 정의되며 해당 값은 매개변수화된 매개변수를 사용하여 할당되어야 합니다. query.
VB.NET의 예:
Dim cmd As New SqlCommand( "SELECT * FROM compliance_corner" _ + " WHERE (body LIKE @query )" _ + " OR (title LIKE @query)") cmd.Parameters.Add("@query", "%" + searchString + "%")
위 내용은 SQL 주입을 방지하기 위해 SQL LIKE 문에서 매개 변수를 올바르게 사용하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!