개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.08.06 20:12

mysqli::escape_string 함수 관련 질문입니다.

목록
  • OAuth전문가 1일 전 2025.08.06 20:12
  • 8
    1
제가 mysqli::escape_string 함수를 사용하여 문자열을.escape_string()로 escape 시켰을 때, 어떤 경우에 MySQL에서 에러를 발생시키는지 궁금합니다.

예를 들어, mysqli::escape_string 함수를 사용하여 다음과 같이 문자열을 escape 시켰을 때, MySQL에서 에러를 발생시키는 경우가 있는지 궁금합니다.

php

$mysqli = new mysqli("localhost", "root", "", "test");

$string = "SELECT * FROM users WHERE id = 1 OR 1=1";

$escaped_string = $mysqli->escape_string($string);

$mysqli->query($escaped_string);



위의 예제에서, MySQL에서 에러를 발생시키는 경우가 있는지 궁금합니다.

    댓글목록

    profile_image
    나우호스팅  1일 전



    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

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 42,299건 / 3 페이지

검색

게시물 검색