2014-10-09 2 views
0

웹 사이트의 콘텐츠가있는 폴더 또는 네트워크 경로를 가리 키도록 open_basedir을 설정하도록 권장하는 FastCGI로 IIS에서 PHP 설치를 설명하는 몇 가지 자습서를 보았습니다.PHP에서 open_basedir을 IIS에서 FastCGI로 사용하는 이유는 무엇입니까?

내 응용 프로그램 서버에서 open_basedir을 설정하면 파일 관리시 다음 오류가 표시됩니다. 경고 : open_basedir 제한 사항이 적용됩니다. 파일 (C : \ Windows \ Temp \ php92E7.tmp)이 허용 된 경로 내에 있지 않습니다. (C : \ inetpub \ wwwroot)

나는 inetpub에서 임시 디렉토리를 설정할 수 있음을 알고 있지만보기는 어렵습니다. windows \ temp를 사용하는 것이 왜 문제가됩니까?

IIS에 FastCGI로 PHP와 관련된 안전 결함이 있습니까? open_basedir 요구 사항이 있습니까? 그렇지 않다면 추천 이유가 무엇입니까? 아니면 필요하지 않은가?

+0

웹 루트 외부에서 실행 파일을 정말로 설치하고 싶습니까? –

답변

2

open_basedir (IIS가 있지만 웹 서버에 플랫폼이있는 Windows는 물론)을 설정하면 응용 프로그램에서 읽을 수있는 파일을 제한하고 으로 작성하고을 포함하는 것을 제한하는 보안 조치입니다.

사실 PHP가 파일 시스템의 어느 곳에서나 PHP 코드가있는 파일을 포함 할 수있는 보안 결함은 아니지만 기능입니다. 예를 들어 웹 루트에 일부 파일이 있거나 웹 루트에서 벗어난 다른 파일을 가질 수 있습니다 (웹 서버에서는 액세스 할 수 없지만 PHP에서는 액세스 할 수 있습니다).

그러나 프로그램에 결함이있는 경우 사용자가 응용 프로그램에 포함되지 않은 파일을 읽거나 포함 (또는 쓸 수도 있습니다.) 할 수 있습니다. 시스템 파일, 사용자 업로드 파일 또는 기타 응용 프로그램 파일 일 수 있습니다. 이것이 바로 open_basedir이 중요한 이유입니다.

open_basedir을 설정 한 후에도 open_basedir 경로 아래에 있어야하므로 다른 PHP 함수 (예 : upload_tmp_dir)의 경로도 설정하십시오.

관련 문제