
mysqli::escape_string 함수는 MySQL에서 사용하는 문자열을 안전하게 처리하기 위해 사용됩니다. 그러나, 이 함수는 SQL 인젝션 공격을 방지하기 위해 설계된 것이 아니라는 점을 명심해야 합니다.
위의 예제에서 MySQL에서 에러를 발생시키는 경우는 없습니다. 왜냐하면, mysqli::escape_string 함수는 문자열을 escape 하기만 하기 때문에, SQL 인젝션 공격을 방지하는 기능은 없습니다.
그러나, 위의 예제에서 MySQL에서 에러를 발생시키는 경우가 있습니다. 바로, SQL 문법 오류입니다. "SELECT * FROM users WHERE id = 1 OR 1=1" 이라는 SQL 문은 유효한 SQL 문이 아니기 때문에, MySQL에서 에러를 발생시킵니다.
mysqli::escape_string 함수는 문자열을 escape 하기만 하기 때문에, SQL 문법 오류를 방지하는 기능은 없습니다. 따라서, SQL 문법 오류를 방지하기 위해, PHP의 prepared statement 기능을 사용하는 것을 추천합니다. prepared statement 기능은 SQL 인젝션 공격을 방지하기 위해 설계된 것이며, SQL 문법 오류를 방지하는 기능도 있습니다.
2025-08-06 20:13