세이박스

file_get_contents() Warning 오류 해결 방법

웹프로그램
웹호스팅을 이용할 경우 php.ini 수정이 어려운 경우가 있습니다.
특히 외부의 파일을 가져올 경우 allow_url_fopen = 0; 일 경우 1로 수정 해줘야 하지만, 보안상 막아둔 경우 서버를 공용으로 사용하므로 수정을 해주지 않습니다.
저의 경우 cafe24 호스팅을 주로 이용하는데 이곳 역시 allow_url_fopen = 0 으로 되어 있어서 fopen(), file(), file_get_contents() 함수로 외부 URL 을 읽어 들이기가 안됩니다.
 
Warning: file_get_contents() URL file-access is disabled in the server configuration in
 
하지만, 오류를 해결하는 방법으로 외부 파일을 읽어 들이는 함수 이용전에 다음과 같이 ini 설정을 임시로 변경해서 사용하면 됩니다.
 
@ini_set("allow_url_fopen","1");
 
ini_set() 를 사용해서 해당 페이지에서 일시적으로 allow_url_fopen을 1로 적용해서 이용할 수 있습니다.
 
하지만, allow_url_fopen 이용시 보안상 취약합니다.
아래 cafe24 호스팅 업체로 부터 답변 받은 내용 입니다.
 
최근 발생하고 있는 홈페이지 변조나, 피싱 사이트로의 악용은 대부분 게시판의 취약점이나, php 의 취약점에 의해 발생되고 있습니다. 이중에 가장 빈번한 것이 php 의 외부 사이트 소스 실행 기능 (allow_url_fopen)으로 악의적인 프로그램이 실행되어져서 발생이 되고 있습니다.
이러한 문제로 인하여 한국정보보호진흥원에서는 allow_url_fopen 을 허용하지 않기를 권고 하고 있습니다.
allow_url_fopen 을 허용하게 되면 보안적으로 심각한 문제를 초래 할 수 있습니다.
해당 기능을 켜두게 되면, 원격에서 프로그램을 웹사이트에 삽입하여 실행(PHP injection), 대량으로 웹사이트를 변조 할 수 있게 되므로 어느날 갑자기, 홈페이지 화일이 통채로 지워지거나, 데이터베이스 내용이 모두 사라질수도 있습니다.
 
관련 내용 URL :
 
저희 카페24에서는 기본적으로 해당 기능이 모두 off 로 설정이 되어 있으며, 따라서 고객님께서는 가급적 allow_url_fopen 기능이외에 다른 방법으로 구현을 하시거나, 아래의 예시와 같은 function 을 만들어서 사용하시는 것을 권고합니다. (HttpRequest, http_get, fsockopen 등의 함수로 구현이 가능합니다.)
(allow_url_fopen 기능이란 php 에서 include 를 사용할때 URL 방식으로 파일을 include 할수 있도록 해주는 기능입니다.)
 
(해당 내용이 이해가 되지 않거나, 보안의 위험성을 감수하더라도 반드시 allow_url_fopen 을 사용하셔야 한다면, 고객센터로 연락을 주시면 친절히 상담해 드립니다.)
 
-----------------------------------------------------------------------------------------
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.0\\r\\nHost: $host\\r\\n\\r\\n";
     $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 == "\\r\\n" )
               $body = true;
          }
          fclose($fp);
          echo $in;
     }
}
-----------------------------------------------------------------------------------------
 
위 함수로도 동작 잘 되는군요.
 
 

ezRenamer ver 1.07 파일 및 폴더명 손쉽게 한번에 일괄 변경시 유용한 프로그램

기타
사용자 삽입 이미지

파일이나 폴더를 한번에 일괄 변경 하고자 할 때가 간혹 생기죠 이럴때 exRenamer 프로그램을 이용시 아주 손쉽게 바꿀수 있도록 해줍니다.

ezRenamer ver 1.07정식(11/20)


1. 프로그램 특징

  • 프로그램 파일 이름을 한번에 바꿀수 있다.
  • 오른쪽 창의 내용을 카피하여 다른 창에서 편집후 다시 붙여 사용가능.
  • 화일 이름 바꾸기를 문서편집기처럼 편하게 사용가능.
  • 설치할 필요없구 그냥 실행.
  • 사이즈 변환 가능
  • 이전에 바꾼 내용 기억.
  • 안 바꿔지던 버그를 수정(6/7update)
  • 화일 앞부분에 앨범이름등을 넣을 수 있다.(6/7update)
  • 이전에 바꿨던 내용은 리스트에 더이상 추가하지 않음.(6/7update)
  • 되돌리기 기능으로 100번까지 가능.(단, 화일 이름을 바꾸면 되돌릴수 없음)(6/7update)


    2. 사용법

    1) 왼쪽 뷰에서 바꿀 디렉토리를 선택한다. 오른쪽 화면에 파일 이름이 생성된다.
    2) 화일 이름을 입맛에 맞게 편집한다.
    3) "이름 바꾸기" 버튼을 눌러 바꾼다.
    4) 탐색기를 통하여 보면 이쁘게 이름이 바껴있을 것이다.
    5) "임시 바꾸기"는 같은 문자를 한꺼번에 다른 문자로 바꿀경우 사용.
    6) "처음에 넣기"를 이용하여 앨범이름을 일괄적으로 넣을수 있다.(6/7update)
    7) "이전으로"기능으로 이름 되돌리기 기능이 가능하다.(6/7update)
    8) "확장자바꾸기"를 이용하여 확장자를 무조건 바꿀수 있다.(11/20update)
    9) 키보드의 "Enter"는 "이름바꾸기" 또는 "처음에 넣기"버튼을 자동으로 눌러줍니다.(11/20update)


    * 개발자 : ezrenamer
    http://ezmuz.com