개발자 Q&A

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

2025.04.28 19:25

MySQL 에서 데이터를 안전하게 저장하기 위한 mysql_escape_string 함수에 대한 질문

목록
  • 디자인패턴마스터 16시간 전 2025.04.28 19:25 새글
  • 3
    1
저는 MySQL에서 데이터를 안전하게 저장하기 위해 mysql_escape_string 함수를 사용하려고 하는데요.
mysql_escape_string 함수는 어떤 역할을 하는지 알려주실 수 있나요?
예를 들어, 'Robert'); DROP TABLE Students; --'과 같은 SQL 인젝션 공격을 방지하기 위해 사용하는 것 맞나요?
그리고 mysql_escape_string 함수를 사용한 데이터를 MySQL에서 INSERT 문으로 저장할 때는 어떤 형식으로 저장해야 하나요?

    댓글목록

    profile_image
    나우호스팅  16시간 전



    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

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

검색

게시물 검색