2011-09-08 2 views
1

우선 불쌍한 점 때문에 질문이 불분명하면 죄송합니다.아파치가 적절한 핸들러/인터프리터를 호출/호출하는 방법은 무엇입니까?

나는 요청을 처리하기 위해 아파치가 적절한 엔진/호출자를 호출하는 방법을 알고 싶습니다. . 사용자가 http://somesite.com/someurl.php을 요청했다고 가정합니다. 이제 아파치가 PHP 인터프리터를 시작해야한다고 어떻게 결정합니까? 아파치는 파일 확장자/MIME 유형 또는 그 밖의 것을 기반으로하여 결정합니까?

는 내가 알고있는 것은 : 나는 그것에 대해 걱정하는 이유

AddHandler cgi-script .cgi .py 
# Tells apache to treat .cgi & .py files to treat as cgi scripts 

: 내가 좋아하는 무언가에 의해 파일의 확장자에 따라 특정 통역사를 호출하기 위해 아파치를 구성 할 수 있습니다? 최근에 내 질문에 (PHP file upload: mime or extension based verification?) 일부 사용자가 잘못된 MIME 유형 (즉, image/jpeg)을 사용하여 파일을 업로드했지만 확장명이 .php 인 경우 파일이 실행될 수 있음을 알게되었습니다 (실행 권한이 있다고 가정하고 악의적 인 PHP 코드 포함). EXIF 메타 데이터로 유해한 작업을 수행 할 수 있습니다.

답변

1

전적으로 서버 구성 방법에 따라 다릅니다. 기본적으로 Apache는 항상 파일 내용을 제공하는 기본 핸들러를 사용합니다. 그러나 SetHandler 지시어를 사용하여 변경할 수 있습니다. 이 지시문은 <Files> 또는 <Directory> 또는 <Location> 블록을 포함하여 구성에 그대로 배치 할 수 있으므로 파일 시스템 경로, URL 접두어 또는 Apache에서 액세스 할 수있는 다른 변수를 기반으로 처리기를 설정할 수 있습니다.

아파치가 그렇게 바로 가기로 AddHandler 지침을 제공하므로는하지만, 파일 이름 확장명에 따라 처리기를 설정하는 것이 특히 일반적이다.

자세한 내용은 the handler documentation을 참조하십시오.

P. 파일 시스템은 일반적으로 MIME 유형 데이터를 저장하지 않으므로 Apache는 일반적으로 확장명을 검토하여 파일의 MIME 유형을 추측해야합니다.

관련 문제