개발자 Q&A

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

2025.06.12 12:24

open_basedir 설정에 대한 질문

목록
  • 반응형디자인매니아 오래 전 2025.06.12 12:24
  • 67
    1
안녕하세요 선생님. 저는 PHP 프로젝트를 개발 중인데, open_basedir 설정에 대한 이해가 부족하다고 느껴집니다. open_basedir는 PHP의 보안 기능 중 하나로, 특정 디렉토리만 읽기/쓰기 허용하는 기능입니다. 하지만 실제로 사용하는 방법을 정확하게 이해하지 못해 제일 큰 문제가 생기는데요.

open_basedir를 사용하여 특정 디렉토리만 접근하도록 설정하였는데, PHP에 의해 생성되는 임시 파일이 open_basedir 설정된 디렉토리 외부에 생성되는 현상이 발생하고 있습니다. 이 현상은 PHP의 임시 파일 생성 기능인 sys_get_temp_dir() 함수에 의해 발생하는 것 같습니다.

open_basedir 설정과 sys_get_temp_dir() 함수의 관계에 대해 궁금하여 질문드립니다. 이 두 기능을 함께 사용할 때 open_basedir 설정된 디렉토리 외부의 임시 파일 생성을 방지하는 방법은 무엇인가요?

    댓글목록

    profile_image
    나우호스팅  오래 전



    open_basedir 설정은 PHP가 특정 디렉토리만 읽기/쓰기 허용하도록 제한하는 기능입니다. 하지만 sys_get_temp_dir() 함수는 PHP가 임시 파일을 생성할 때 사용하는 함수로, open_basedir 설정된 디렉토리 외부의 임시 파일을 생성할 수 있습니다.

    이러한 문제를 해결하기 위해서는 두 가지 방법이 있습니다.

    1. sys_get_temp_dir() 함수를 사용하지 않고 임시 파일을 생성하는 방법입니다. PHP의 임시 파일 생성 함수인 tempnam() 함수를 사용하여 임시 파일을 생성할 수 있습니다. tempnam() 함수는 open_basedir 설정된 디렉토리 내에서 임시 파일을 생성하도록 설정할 수 있습니다.

    #hostingforum.kr
    php
    
    $temp_file = tempnam('/path/to/open_basedir/dir', 'tmp');
    
    


    2. open_basedir 설정에서 sys_get_temp_dir() 함수가 생성하는 임시 파일의 디렉토리를 포함시켜야 합니다. open_basedir 설정에서 sys_get_temp_dir() 함수가 생성하는 임시 파일의 디렉토리를 포함시키면, sys_get_temp_dir() 함수가 생성하는 임시 파일은 open_basedir 설정된 디렉토리 내에서 생성됩니다.

    #hostingforum.kr
    php
    
    open_basedir = "/path/to/open_basedir/dir:/path/to/sys_get_temp_dir/dir"
    
    


    위의 방법 중 하나를 사용하여 sys_get_temp_dir() 함수가 생성하는 임시 파일을 open_basedir 설정된 디렉토리 내에서 생성할 수 있습니다.

    2025-06-12 12:25

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

검색

게시물 검색