디렉토리 목록에서 PHP 파일 가져오기

디렉토리 목록에서 PHP 파일 가져오기

내 웹사이트에는 다른 PHP 파일에 포함하는 PHP 파일이 있습니다. 이 파일은 내 DB 연결 및 기타 다양한 기능과 같은 다양한 작업을 수행합니다... 이제 내 파일의 지정된 경로를 알고 있으므로 경로를 제공할 수 있습니다. 좋다

http://www.mysite.com/myfiles/

그러면 해당 디렉토리에 있는 파일의 디렉토리 목록이 제공됩니다.

나는 디렉토리 목록을 피하는 방법을 알고 있습니다. 파일 이름을 입력하거나 index.html디렉토리 index.php목록 대신 그렇게 함으로써

하지만 여전히 파일의 경로를 알고 있습니다. http://www.mysite.com/myfiles/con.php이렇게 하면 코드가 실행되지만 클라이언트 측이기 때문에 OFFCourse 소스를 볼 수 있습니다.

하지만 누군가 경로를 알고 있을 때 소스 코드가 포함된 PHP 파일을 가져올 수 있는 방법이 있습니까? 그렇지 않으면 보안상 위험할 것입니다.

답변1

우선, include 디렉토리의 .htaccess 파일에 다음 행을 추가하여 디렉토리 목록을 비활성화할 수 있어야 합니다(그러면 쓸모 없는 index.php 파일로 디렉토리 트리를 오염시킬 필요가 없게 됩니다).

Options -Indexes

이제 사용자가 PHP 소스 코드를 얻을 수 있다는 것과 관련하여 웹 서버가 PHP 파일을 해석하고 직접 제공하는 것이 아니라 올바르게 설정되어 있는 한 괜찮을 것입니다(포함 파일에 echo()변수가 없다고 가정) 또는 그런 어리석은 것).

답변2

PHP 파일에 대해 AddType 또는 SetHandler를 정의한 경우 클라이언트에 제공하기 전에 Apache/웹 서버에서 해석됩니다. 따라서 클라이언트는 PHP 소스를 볼 수 없고 생성된 HTML만 볼 수 있습니다.

답변3

내가 당신을 올바르게 이해했다면, 당신은 PHP 파일의 실제 URL을 아는 사람들을 위해 PHP 소스를 얻고 싶습니다. 그런 것을 사용할 수도 있지만 기억하세요. 실제 보안은 아니므로 DB 사용자/비밀번호 등과 같은 개인 정보가 포함된 PHP 파일에는 포함하지 않는 것이 좋습니다.

<?php
 if($_GET['hash'] === "jV1V-7-VhS09K-_77GtEoOd86K2-ba-W") {
   show_source(__FILE__);
 }
?>

이렇게 하면 "해시"를 아는 사람(그리고 당신을 무차별 공격하는 사악한 사람)만 다음으로 이동하여 해당 소스 코드를 얻을 수 있습니다.http://example.org/myfiles/con.php?hash=jV1V-7-VhS09K-_77GtEoOd86K2-ba-W.

관련 정보