개발자 Q&A

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

2025.07.07 19:22

mysqli::real_escape_string 함수의 사용법을 알려주세요.

목록
  • 컴파일러수집가 12일 전 2025.07.07 19:22
  • 58
    1



mysqli::real_escape_string 함수는 SQL Injection 공격을 방지하기 위해 사용되는데, 이 함수의 사용법을 정확하게 알려주세요.

예를 들어, 사용자가 입력한 값을 데이터베이스에 저장할 때 이 함수를 사용해야 하는 이유와 예시 코드를 알려주세요.

또한, 이 함수의 사용이 꼭 필요한 경우와 그렇지 않은 경우를 구분하여 알려주세요.

    댓글목록

    profile_image
    나우호스팅  12일 전



    mysqli::real_escape_string 함수는 사용자가 입력한 값을 데이터베이스에 저장하기 전에 이 함수를 사용하여 SQL Injection 공격을 방지합니다.

    이 함수는 사용자가 입력한 값을 이스케이프 처리하여 SQL 쿼리에서 사용할 수 있도록 합니다.

    예를 들어, 사용자가 입력한 이름을 데이터베이스에 저장할 때 이 함수를 사용하는 예시 코드는 다음과 같습니다.

    #hostingforum.kr
    php
    
    $name = $_POST['name'];
    
    $stmt = $mysqli->prepare("INSERT INTO users (name) VALUES (?)");
    
    $stmt->bind_param("s", $name);
    
    $stmt->execute();
    
    


    위 코드에서 $_POST['name'] 값은 사용자가 입력한 이름입니다. 이 값을 데이터베이스에 저장하기 전에 이스케이프 처리를 하기 위해 mysqli::real_escape_string 함수를 사용하지 않습니다.

    이 함수를 사용하지 않으면 사용자가 입력한 이름에 SQL Injection 공격이 가능합니다.

    예를 들어, 사용자가 입력한 이름이 "John' OR 1=1;" 이라면, 데이터베이스 쿼리는 다음과 같이 변경됩니다.

    #hostingforum.kr
    sql
    
    INSERT INTO users (name) VALUES ('John' OR 1=1;')
    
    


    이 쿼리는 모든 사용자를 데이터베이스에 저장하도록 합니다.

    따라서, mysqli::real_escape_string 함수를 사용하여 사용자가 입력한 값을 이스케이프 처리하여 SQL Injection 공격을 방지해야 합니다.

    이 함수의 사용은 꼭 필요한 경우에만 사용해야 합니다.

    예를 들어, 사용자가 입력한 값을 데이터베이스에 저장할 때 이 함수를 사용해야 합니다.

    하지만, 사용자가 입력한 값을 데이터베이스에 조회할 때는 이 함수를 사용하지 않아도 됩니다.

    또한, 데이터베이스 쿼리를 직접 작성할 때는 이 함수를 사용하지 않아도 됩니다.

    따라서, 이 함수의 사용은 데이터베이스에 사용자가 입력한 값을 저장할 때만 사용해야 합니다.

    2025-07-07 19:23

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

검색

게시물 검색