내 데이터베이스 비밀번호가 포함된 연결 PHP 파일이 있습니다. 내 웹사이트에 있는 PayPal 스토어의 포함 디렉터리에 있습니다. 아무도 볼 수 없도록 해당 폴더와 파일을 이동할 수 있는 위치를 찾으려고 하시나요?
<?php
include('var/includes/connection.php');
또는
include('../../../includes/connection.php');
내 파일은 /var/www/html/foo/foo/includes/connection.php에 있습니다.
답변1
root라고 부르는 루트는 http 서버에서 제공하는 파일의 루트이며 일반적으로 표준으로 사용되지만 /var/www
구성에 따라 변경될 수 있습니다.
서버에 대한 요청으로 액세스할 수 있는 첫 번째 디렉터리이므로 다음과 같은 이점이 있습니다.http://www.귀하의 사이트.com인용될 것이다/var/www
파일을 해당 경로 내에 있지 않은 디렉터리로 이동하면 액세스할 수 없지만 이것이 /var 경로를 반복해야 한다는 의미는 아니며 /home/myusername/connection.php
예제에서처럼 파일을 그 안에 넣을 수도 있습니다.
정상적으로 구성된 웹 서버에서는 php 파일이 이미 처리되어 있기 때문에 원격 공격자가 이 파일에 저장된 변수를 획득하는 것은 불가능하지만, 잘못 구성된 http 서버 구성으로 인해 php가 실행되지 않을 것이라고 가정하면, 데이터를 일반 텍스트로 표시합니다.
따라서 파일을 탐색 가능한 폴더 범위 밖으로 이동하고 PHP에서 포함하여 액세스하는 것이 권장되는 이유는 무엇입니까?
<?php
include('/home/user/myconfig/connection.php');
좀 더 체계적인 위치를 선택하겠습니다.