SQL Injection

설명

대상 응용 프로그램 서버의 백엔드 데이터베이스에서 임의의 SQL 명령을 실행할 수 있습니다. SQL Injection은 데이터 또는 시스템 손상으로 이어질 수 있는 심각한 취약점입니다.

보완

백엔드 데이터베이스 시스템에 요청을 발행할 때 항상 매개변수화된 쿼리를 사용하십시오. 동적 쿼리를 생성해야 하는 상황에서는 사용자 입력을 직접 사용하지 말고 유효한 값들의 맵 또는 딕셔너리를 사용하고 사용자 제공 키를 사용하여 해당 값을 해결하십시오.

예를 들어, 일부 데이터베이스 드라이버는 > 또는 < 비교 연산자에 대한 매개변수화된 쿼리를 허용하지 않을 수 있습니다. 이러한 경우에는 사용자가 제공한 > 또는 < 값을 사용하지 말고 사용자가 gt 또는 lt 값을 제공하도록 하십시오. 알파벳 순의 값은 동적 쿼리 작성에 사용될 >< 값을 조회하는 데 사용됩니다. 열 또는 테이블 이름이 필요하지만 매개변수화할 수 없는 다른 쿼리의 경우에도 동일한 방법을 사용하십시오.

Details

ID Aggregated CWE Type Risk
89.1 false 89 Active high

링크