2010-12-01 2 views
0

어떤 PHP 코드를 실행하는 myfile.php 파일이 있다고합시다. 이 파일의 이름을 myfile.php.xx이라면 어떻게 든 (가능한 모든) 실행될 수 있습니까? xx은 임의의 문자입니까? myfile.phpxx은 어떨까요? 같은 상황 (.pl, .exe, .dll 등)의 다른 유형의 실행 파일은 어떻습니까?확장자가 .php.xx 인 PHP 파일을 PHP로 실행할 수 있습니까?

정규식을 사용하여 이러한 유형의 파일에 대한 파일 이름을 확인하는 방화벽에서 작업하고 있습니다. .php, .exe 등의 파일 끝을 확인하는 것만으로 충분합니까? 아니면 그 뒤에 오는 파일도 확인해야합니까?

+0

어떤 종류의 방화벽이 있는지 물어볼 수 있습니까? 나가는? 들어오는? 웹 서버를 보호해야하는 이유는 무엇입니까? – deceze

+0

불가능합니다. 파일 확장자는 아무 것도 의미하지 않습니다. .exe를 원하는 이름으로 바꿀 수 있으며 원하는 경우 웹 서버가 PHP로 파일을 해석하도록 지정할 수 있습니다. –

답변

8

주어진 URL을 어떻게 처리할지 결정하기 위해 웹 서버까지 입니다. 매월 세 번째 목요일 오후 2:35에 액세스하는 20 자리 숫자의 URL을 PHP 스크립트로 처리하려는 경우 이것이 특권입니다. 웹 서버가 요청한 URL에 따라 정확히 무엇을 할 것인지 추측하는 것은 불가능합니다.

+3

랜덤 조건 +1 –

+0

동의 ... 임의 조건은 나를 위해 그것을 분명히했습니다. 나는 이것이 아마도 그랬을 것이라고 생각했지만 다른 모든 사람들이 무엇을 말했는지보고 싶었습니다. 감사! – matthewpavkov

3

실제 PHP 인터프리터는 파일 이름이나 확장자에 대해 조금이라도 신경 쓰지 않습니다. 파일에 유효한 파일을 던져 넣을 수 있습니다. 유효한 PHP 코드가 있으면 실행될 것입니다.

웹 서버 기본 설정은 PHP 인터프리터에서 .php (그리고 아마도 .php4.php5) 파일을 던져,하지만 어떻게 할 수 적절한 설정을 어떤 파일 유형 :

AddHandler php5-script .foobar 

또한 Perl 스크립트, C# 프로그램 또는 하드 디스크를 지우면 .php으로 끝나는 URL을 처리하는 것이 기본값 일 수 있습니다.

파일 이름은 절대적으로 을 의미하지 않음을 의미합니다.

+1

.asp 파일을 PHP로 처리하도록 Apache를 구성한이 사람을 생각 나게하고, 지금 WordPress : D의 ASP.NET 포트가 있다고 주장합니다. (농담이지만 ​​많은 사람들이 혼란스러워합니다.) – Mchl

관련 문제