2013-08-07 2 views
0

/했던 opendir/openfile 등블록 액세스 파일로/openfile 등 내가 file_exists 같은 기능을 위해 인 data.xml 파일에 대한 액세스를 거부 할

내 파일 test.php가 포함

$path="./mydata.html"; 
if ($handle = opendir($path)) { 

} 

closedir($handle); 

기능을 차단하지 않고 읽을 수 없게 만드는 방법? 그것은 가능한가?

  • .htaccess?
  • 다른 사용자가 설정 한 chmod를 통해 파일을 차단해야합니까? PHP 스크립트를 실행합니까?
  • 다른 방법은 없습니까?

감사

답변

0

은 사용자 데이터를 사용하거나 모든 fopen()/opendir()/file_get_contents() 전에 때마다 (즉) sanitize_filepath($path)을 파일 경로를 확인하는 함수를 작성하는 것이 작업을 수행하고, 호출하는 가장 쉬운 방법. sanitize_filepath() 함수에서 $pathPATH_SEPARATOR으로 분해하고 in_array()을 사용하여 제공된 블랙리스트를 확인하십시오.

반환을 false로 설정하거나 파일 경로를 계속 보지 않으면 예외를 throw합니다.

.htaccess를 통한 액세스를 막는 것은 내가 http://example.com/your/website/data.xml으로 가서 파일을 볼 수 없다는 것을 의미합니다. script.php가 <?= echo file_get_contents($_GET['file']); ?>이라고 가정하고 http://example.com/your/website/script.php?file=data.xml을 요청하면 PHP 스크립트를 악용하여 파일에 액세스 할 수 있습니다. (이것은 분명히 쓸모없고 안전하지 않은 스크립트이지만, 예입니다.)

권한을 chmodding하면 PHP가 파일을 읽지 못하게 될 수 있습니다. 파일을 읽을 필요가 없다면 PHP가 액세스 할 수있는 위치에 있지 않아야합니다. 웹 루트 외부로 이동하십시오.