
DB2_escape_string 함수는 SQL Injection 공격을 막기 위해 사용하는 함수입니다. 이 함수는 특수 문자를 escape() 하여 SQL Injection 공격을 방지합니다.
DB2_escape_string 함수는 다음 종류의 문자열을 escape() 해야 합니다.
- 싱글 쿼트 ('')
- 더블 쿼트 ("")
- 백슬래시 (\)
- NULL
- 0x00 (NULL 바이트)
- 0x1A (파일 종료 문자)
이 함수를 사용하여 escape() 한 문자열의 예시를 알려드리겠습니다.
예시:
#hostingforum.kr
sql
SET @sql = 'SELECT * FROM 테이블명 WHERE 이름 = '' + DB2_escape_string('John''') + ''';
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
위 예시에서 DB2_escape_string 함수를 사용하여 'John'' (싱글 쿼트와 싱글 쿼트를 함께 사용하는 경우) 문자열을 escape() 한 후에 SQL 문을 실행합니다.
또한, DB2_escape_string 함수를 사용하여 더블 쿼트 ("") 문자열을 escape() 한 예시를 알려드리겠습니다.
예시:
#hostingforum.kr
sql
SET @sql = 'SELECT * FROM 테이블명 WHERE 이름 = '' + DB2_escape_string("John"") + ''';
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
위 예시에서 DB2_escape_string 함수를 사용하여 "John\" (더블 쿼트와 더블 쿼트를 함께 사용하는 경우) 문자열을 escape() 한 후에 SQL 문을 실행합니다.
2025-04-06 02:50