본문으로 건너뛰기

php의 allow_url_fopen 설정을 변경할 수 있나요?

💡 요약 정리

  • 카페24 웹호스팅은 기본적으로 allow_url_fopen 기능이 OFF입니다.
  • 보안 권고(한국정보보호진흥원)에 따라 허용하지 않는 것을 권장합니다.
  • 허용 시 원격 코드 실행, 사이트 변조, 파일/DB 삭제 등 심각한 피해가 발생할 수 있습니다.
  • 대체 방법(예: HttpRequest, http_get, fsockopen) 사용을 권장하며 예시 코드를 제공합니다.
  • 보안 위험을 감수하고서라도 꼭 필요하다면 1:1 문의로 요청해 주세요.

1. 기본 정책과 보안 권고

  • 최근 발생하는 홈페이지 변조나 피싱 피해는 게시판 또는 PHP 취약점을 악용하는 경우가 많습니다. 이 중 특히 자주 악용되는 기능이 PHP의 외부 소스 실행 기능인 allow_url_fopen입니다.
  • 카페24는 이러한 위험을 예방하기 위해 기본적으로 해당 기능을 모두 OFF로 운영합니다.
  • 한국정보보호진흥원에서도 allow_url_fopen을 허용하지 않기를 권고하고 있습니다.
  • allow_url_fopen을 허용하면 보안적으로 심각한 문제가 발생할 수 있습니다.

(참고) allow_url_fopen은 PHP에서 include를 URL 방식으로 사용해 원격 파일을 불러올 수 있게 해주는 기능입니다.


2. 왜 위험한가요?

allow_url_fopen을 켜두면 다음과 같은 위험이 커집니다.

  • 원격에서 악성 프로그램이 삽입·실행되는 PHP injection 위험
  • 대량의 웹사이트 변조(Defacement) 시도 증가
  • 어느 날 갑자기 홈페이지 파일이 대량 삭제되거나
  • 데이터베이스(DB) 내용이 모두 사라지는 등 치명적 피해 발생 가능
결론: 보안상 허용하지 않는 것이 가장 안전합니다.

3. 권장 대안 방법

allow_url_fopen 대신 다음과 같은 방법을 권장합니다.

  • HttpRequest, http_get, fsockopen 등의 함수로 구현
  • 아래 fsockopen 예시 함수를 참고해 주세요.
function get_url_fsockopen( $url ) {
      $URL_parsed = parse_url($url);
      $host = $URL_parsed["host"];
      $port = $URL_parsed["port"];
      if ($port==0)
            $port = 80;
      $path = $URL_parsed["path"];
      if ($URL_parsed["query"] != "")
            $path .= "?".$URL_parsed["query"];
      $out = "GET $path HTTP/1.0rn";
      $out .= "Host: $hostrn";
      $out .= "Connection: Closernrn";
      $fp = fsockopen($host, $port, $errno, $errstr, 30);
      if (!$fp) {
            echo "$errstr ($errno)<br>n";
      } else {
            fputs($fp, $out);
            $body = false;
            while (!feof($fp)) {
            $s = fgets($fp, 128);
            if ( $body )
               $in .= $s;
            if ( $s == "rn" )
               $body = true;
            }
            fclose($fp);
            echo $in;
      }
}

4. 꼭 사용해야 하는 경우

보안 위험을 충분히 인지하고서도 반드시 allow_url_fopen을 사용해야 한다면, 고객센터로 문의해 주세요.

문제가 해결되지 않았나요?

보안 위험을 검토했음에도 allow_url_fopen 허용이 꼭 필요하다면, 정확한 확인을 위해 아래 정보를 포함하여 1:1 문의게시판으로 문의해 주세요.

  • 카페24 아이디
  • 적용할 도메인
  • 필요 사유와 사용 시나리오(예: 어떤 스크립트가 어떤 원격 리소스를 호출하는지)
  • 에러 메시지 또는 관련 화면 캡처