최초 작성일 : 2023-05-10 | 수정일 : 2023-05-10 | 조회수 : 480 |
PHP의 MySQLi 확장에서 사용하는
mysqli_real_escape_string()
함수에 대해 자세히 알아보자. 이 함수는 MySQL 쿼리를 안전하게 만드는 데 중요한 역할을 하므로, PHP와 MySQL을 사용하여 웹 애플리케이션을 개발하는 데 있어 중요한 지식이다.mysqli_real_escape_string() 함수란?
mysqli_real_escape_string()
함수는 MySQL 쿼리에서 사용될 문자열에서 특수 문자를 안전하게 처리한다.
이 함수는 문자열에서 다음과 같은 특수 문자를 해제한다.
이 함수는 SQL 인젝션 공격을 방지하는 데 도움이 된다.
SQL 인젝션은 공격자가 악의적인 SQL 문을 삽입하여 데이터베이스를 공격하는 방법이다.
mysqli_real_escape_string()
함수를 사용하는 방법은 다음과 같다.
phpmysqli_real_escape_string($connection, $string_to_escape);
여기서 $connection
은 데이터베이스 연결을 나타내는 mysqli 객체이며, $string_to_escape
는 이스케이프할 문자열이다.
다음은 mysqli_real_escape_string()
함수를 사용하는 간단한 예제이다.
php$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');
$user_input = 'O'Reilly';
$safe_input = $mysqli->real_escape_string($user_input);
$query = 'INSERT INTO authors (name) VALUES ('$safe_input')';
$mysqli->query($query);
이 예제에서 사용자 입력에 작은따옴표(')가 포함되어 있다.
만약 이 문자열을 그대로 사용하면, SQL 쿼리가 제대로 작동하지 않다.
하지만 mysqli_real_escape_string()
함수를 사용하면 작은따옴표가 이스케이프되어 안전하게 쿼리에 삽입된다.