2012-11-17 2 views
8

내 대학은이를 통해 미러링 동일한 데이터를 여러 대의 서버를 가지고, 그래서 예를 건은해제 다운로드

foo.uni.edu/file.php 
bar.uni.edu/file.php 

에 대한 액세스 할 수 있습니다 , PHP를 설치하지 않은 서버를 통해 연결 한 사용자는 내 PHP 파일을 다운로드 할 수 있습니다. 이 문제를 피할 수있는 .htaccess가있는 방법이 있을까요? PHP 서버가 설치되어있는 경우에만 PHP 파일을 열 수 있습니까?

+1

''를 활용할 수도 있습니다. – mario

+0

단일 (로드 균형 조정) 서버에 대한 액세스를 제한하지 않는 이유는 무엇입니까? – Kubee

답변

1

문서 루트 외부에서 파일을 저장할 수있는 경우 모든 중요한 데이터를 docroot 외부에 저장하여 문제를 해결할 수 있습니다. 공개적으로 액세스 할 수있는 스크립트에 include을 사용하면 해당 파일에 액세스 할 수 있습니다. 당신이 /username/public_html에 업로드하고, public_html이 문서의 루트의 경우

그래서, (예를 들면, foo.uni.edu/file.php/username/public_html/file.php이다), 당신은 대신 /username/file.php에 업로드하고 단지 include('../file.php');

이 같은 것을 포함하는 /username/public_html 다른 스크립트를 배치 할 것 어떤 경우에도 서버의 구성 오류로 인해 PHP의 구문 분석이 중지되는 경우에 적합합니다.

또한 mod_php이 활성화되지 않은 경우 PHP 파일에 대한 액세스를 거부 IfModuleFilesMatch를 사용하여 시도 할 수 :

<IfModule !mod_php.c> 
    <FilesMatch "\.php$"> 
     Order Deny,Allow 
     Deny from All 
    </FilesMatch> 
</IfModule> 

를 문제가 해결되지 않으면, 대신 !mod_php5.c을 시도합니다.

+0

mods 중 하나가 PHP가 설치된 서버에서 PHP 파일에 액세스하려고 시도 할 때 권한 거부 오류가 발생합니다. – vascoFG

+0

서버에서 PHP4를 설치할 수 있습니까? 그렇다면'! mod_php4.c'을 시도하십시오. 그 중 하나가 작동하지 않는 경우, 나는 내가 곤두박질 친다. – Kelvin