SQL 이스케이프/이스케이프 해제는 텍스트 입력을 정제하여 SQL 문에 안전하게 삽입할 수 있도록 하는 프로세스를 말합니다.
이스케이프 해제는 특수 문자(따옴표 또는 백슬래시 등)를 구문 오류나 악성 코드 실행을 방지하는 방식으로 수정합니다.
이스케이프 해제는 이스케이프된 문자를 원래 형태로 변환하여 표시 또는 추가 처리를 위해 사용합니다.
악의적인 입력으로 SQL 쿼리의 논리가 변경될 수 있는 SQL 삽입 공격을 방지하기 위해 사용합니다.
데이터에 ', ", \와 같은 문자가 포함되어 있을 때 쿼리에서 구문 오류가 발생하지 않도록 합니다.
사용자 입력이 입력된 대로 정확하게 저장되고 검색되도록 데이터 무결성을 유지합니다.
이스케이프는 다음과 같이 수행됩니다.
문자열에서 작은따옴표를 두 번 사용합니다(예: 'O'Brien'을 'O''Brien'으로 변경).
내장 데이터베이스 함수 또는 라이브러리를 사용하여 입력을 올바르게 이스케이프합니다.
이스케이프 해제는 데이터를 검색할 때 발생하며, 데이터베이스 또는 애플리케이션 계층에서 자동으로 처리하는 경우가 많습니다.
최신 개발 환경에서는 일반적으로 매개변수화된 쿼리 또는 ORM(객체 관계 매퍼)을 통해 이스케이프를 안전하고 자동으로 처리합니다.
원시 SQL에 직접 사용자 입력을 삽입하거나 쿼리할 때(적절하게 이스케이프 처리하지 않는 한 권장하지 않음)
자동 보호 기능이 없는 레거시 시스템 또는 원시 SQL 문자열을 처리할 때
준비된 명령문이나 매개변수화된 명령문을 사용하지 않는 한 항상 입력을 이스케이프하십시오. 쿼리는 선호되고 더 안전한 대안입니다.