
mysql_escape_string 함수는 MySQL에서 데이터를 안전하게 저장하기 위해 사용하는 함수입니다. 이 함수는 특수 문자를 이스케이프 처리하여 SQL 인젝션 공격을 방지합니다. 예를 들어, \'Robert\'); DROP TABLE Students; --\'과 같은 공격을 방지하기 위해 사용됩니다.
mysql_escape_string 함수는 MySQL 4.1.3부터 deprecated되었으며, MySQL 5.1.17부터는 사용할 수 없습니다. 대신, MySQLi 확장 함수의 mysqli_real_escape_string 함수를 사용하거나, PDO 확장 함수의 PDO::quote 함수를 사용하는 것을 권장합니다.
mysql_escape_string 함수를 사용한 데이터를 MySQL에서 INSERT 문으로 저장할 때는 다음과 같은 형식으로 저장해야 합니다.
#hostingforum.kr
sql
INSERT INTO 테이블명 (컬럼명) VALUES ('mysql_escape_string 함수로 이스케이프 처리된 데이터');
예를 들어, \'Robert\'); DROP TABLE Students; --\'과 같은 데이터를 저장할 때는 다음과 같이 저장해야 합니다.
#hostingforum.kr
sql
INSERT INTO Students (이름) VALUES ('mysql_escape_string('Robert')); DROP TABLE Students; --'');
하지만, 위의 예시는 실제로 사용하지 않는 것이 좋습니다. 대신, mysql_escape_string 함수를 사용하여 이스케이프 처리된 데이터를 저장하는 것이 좋습니다.
#hostingforum.kr
sql
INSERT INTO Students (이름) VALUES (mysql_escape_string('Robert'); DROP TABLE Students; --''));
하지만, 위의 예시는 MySQL 5.1.17부터는 사용할 수 없습니다. 대신, MySQLi 확장 함수의 mysqli_real_escape_string 함수를 사용하거나, PDO 확장 함수의 PDO::quote 함수를 사용하는 것을 권장합니다.
2025-04-28 19:26