구성 파일을 직접 액세스에서 숨기는 방법?
PHP구성 파일을 직접 액세스에서 숨기는 방법?
나는 웹 애플 리케이션을위한 Laravel을 사용하고있다. 프로덕션에서 모든 것을 업로드하고 URL 중 일부 파일에 직접 액세스 할 수 있음을 알았습니다 (예 : http://example.com/composer.json).
직접 액세스를 피하는 방법은 무엇입니까?
해결법
-
==============================
1.잘못된 웹 서버 구성을 사용 중입니다. 웹 서버를 공용 디렉토리로 지정하고 다시 시작하십시오.
잘못된 웹 서버 구성을 사용 중입니다. 웹 서버를 공용 디렉토리로 지정하고 다시 시작하십시오.
Apache의 경우 다음 지시문을 사용할 수 있습니다.
DocumentRoot "/path_to_laravel_project/public" <Directory "/path_to_laravel_project/public">
nginx 들어,이 줄을 변경해야합니다 :
root /path_to_laravel_project/public;
그렇게하면 모든 Laravel 파일을 더 이상 브라우저에서 액세스 할 수 없습니다.
-
==============================
2.그것은 틀 렸습니다. composer.json은 공용 디렉토리 외부에 있으므로 액세스 할 수 없어야합니다. 즉, VirtualHost 구성이 올바르지 않습니다.
그것은 틀 렸습니다. composer.json은 공용 디렉토리 외부에 있으므로 액세스 할 수 없어야합니다. 즉, VirtualHost 구성이 올바르지 않습니다.
디렉토리 경로가 / public로 끝나야합니다.
-
==============================
3.웹 서버가 프로젝트의 루트 폴더에있는 공개 디렉토리를 가리 키도록하십시오.
웹 서버가 프로젝트의 루트 폴더에있는 공개 디렉토리를 가리 키도록하십시오.
project root folder/public
그러나 공용 폴더가없고 이미 루트 폴더를 가리키고있는 경우 .htaccess 파일에 다음 코드를 작성하여 액세스를 거부 할 수 있습니다.
<Files ".env"> Order Allow,Deny Deny from all Allow from 127.0.0.1 </Files>
위의 코드에서 먼저 모든 것을 거부하고 실행을 위해 자체 서버 (로컬 호스트에서 서버로) 만 허용하므로 외부 사용자로부터 서버를 보호 할 수 있습니다.
-
==============================
4.문서 루트를 공용 디렉토리로 설정하면 다른 파일에 직접 액세스 할 수 없습니다. 아파치 / nginx /에서 그것을 찾으세요? ??? 구성 파일.
문서 루트를 공용 디렉토리로 설정하면 다른 파일에 직접 액세스 할 수 없습니다. 아파치 / nginx /에서 그것을 찾으세요? ??? 구성 파일.
-
==============================
5.실행중인 웹 서버에 따라 다릅니다. 아파치를 사용하면 .htaccess 파일이되는 반면 Nginx는 서버 설정 파일에서 처리됩니다.
실행중인 웹 서버에 따라 다릅니다. 아파치를 사용하면 .htaccess 파일이되는 반면 Nginx는 서버 설정 파일에서 처리됩니다.
-
==============================
6..htaccess 파일도 거부 할 수 있습니다.
.htaccess 파일도 거부 할 수 있습니다.
<Files "composer.json"> Order Allow,Deny Deny from all </Files>
-
==============================
7.Apache에서는 Laravel 프로젝트의 루트 디렉토리에 .htaccess 파일을 만들어 모든 요청을 public / 디렉토리에 다시 쓸 수 있습니다.
Apache에서는 Laravel 프로젝트의 루트 디렉토리에 .htaccess 파일을 만들어 모든 요청을 public / 디렉토리에 다시 쓸 수 있습니다.
<IfModule mod_rewrite.c> RewriteEngine on RewriteRule ^(.*)$ public/$1 [L] </IfModule>
-
==============================
8.단순히 공란을 만들자.
단순히 공란을 만들자.
config 디렉토리에 파일을 저장하고 사용자에게 accuser 사용자에게 알리려는 메시지를 파일에 씁니다.
전의. 서버 별 forbindon 액세스
-
==============================
9.웹 서버를 공용 디렉토리로 지정하고 다시 시작하십시오.
웹 서버를 공용 디렉토리로 지정하고 다시 시작하십시오.
Apache의 경우 다음 지시문을 사용할 수 있습니다.
DocumentRoot "/path_to_laravel_project/public" <Directory "/path_to_laravel_project/public">
또한 .htaccess 파일도 거부 할 수 있습니다.
<Files "composer.json"> Order Allow,Deny Deny from all </Files>
여러 파일의 경우 위의 파일 태그를 .htaccess 파일에 여러 번 추가 할 수 있습니다.
from https://stackoverflow.com/questions/37507209/how-to-hide-config-files-from-direct-access by cc-by-sa and MIT license
'PHP' 카테고리의 다른 글
준비된 진술은 언제 사용해야합니까? (0) | 2018.09.11 |
---|---|
PHP 오류 : Mysqli_real_escape_string () 정확히 2 매개 변수, 주어진 1 주어진 (0) | 2018.09.10 |
경고 : mysqli_error ()는 정확히 1 개의 매개 변수를 요구하고, 0은 오류를 제공한다 [닫힘] (0) | 2018.09.10 |
PHP로 계산기를 만드는 방법? (0) | 2018.09.10 |
UTF-8 문자열을 사용하여 PHP에서 파일 시스템 함수를 사용하려면 어떻게해야합니까? (0) | 2018.09.10 |