은 사용자 데이터를 사용하거나 모든 fopen()
/opendir()
/file_get_contents()
전에 때마다 (즉) sanitize_filepath($path)
을 파일 경로를 확인하는 함수를 작성하는 것이 작업을 수행하고, 호출하는 가장 쉬운 방법. sanitize_filepath()
함수에서 $path
을 PATH_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가 액세스 할 수있는 위치에 있지 않아야합니다. 웹 루트 외부로 이동하십시오.