복붙노트

구성 파일을 직접 액세스에서 숨기는 방법?

PHP

구성 파일을 직접 액세스에서 숨기는 방법?

나는 웹 애플 리케이션을위한 Laravel을 사용하고있다. 프로덕션에서 모든 것을 업로드하고 URL 중 일부 파일에 직접 액세스 할 수 있음을 알았습니다 (예 : http://example.com/composer.json).

직접 액세스를 피하는 방법은 무엇입니까?

해결법

  1. ==============================

    1.잘못된 웹 서버 구성을 사용 중입니다. 웹 서버를 공용 디렉토리로 지정하고 다시 시작하십시오.

    잘못된 웹 서버 구성을 사용 중입니다. 웹 서버를 공용 디렉토리로 지정하고 다시 시작하십시오.

    Apache의 경우 다음 지시문을 사용할 수 있습니다.

    DocumentRoot "/path_to_laravel_project/public"
    <Directory "/path_to_laravel_project/public">
    

    nginx 들어,이 줄을 변경해야합니다 :

    root /path_to_laravel_project/public;
    

    그렇게하면 모든 Laravel 파일을 더 이상 브라우저에서 액세스 할 수 없습니다.

  2. ==============================

    2.그것은 틀 렸습니다. composer.json은 공용 디렉토리 외부에 있으므로 액세스 할 수 없어야합니다. 즉, VirtualHost 구성이 올바르지 않습니다.

    그것은 틀 렸습니다. composer.json은 공용 디렉토리 외부에 있으므로 액세스 할 수 없어야합니다. 즉, VirtualHost 구성이 올바르지 않습니다.

    디렉토리 경로가 / public로 끝나야합니다.

  3. ==============================

    3.웹 서버가 프로젝트의 루트 폴더에있는 공개 디렉토리를 가리 키도록하십시오.

    웹 서버가 프로젝트의 루트 폴더에있는 공개 디렉토리를 가리 키도록하십시오.

    project root folder/public
    

    그러나 공용 폴더가없고 이미 루트 폴더를 가리키고있는 경우 .htaccess 파일에 다음 코드를 작성하여 액세스를 거부 할 수 있습니다.

    <Files ".env">
    Order Allow,Deny
    Deny from all
    Allow from 127.0.0.1
    </Files>
    

    위의 코드에서 먼저 모든 것을 거부하고 실행을 위해 자체 서버 (로컬 호스트에서 서버로) 만 허용하므로 외부 사용자로부터 서버를 보호 할 수 있습니다.

  4. ==============================

    4.문서 루트를 공용 디렉토리로 설정하면 다른 파일에 직접 액세스 할 수 없습니다. 아파치 / nginx /에서 그것을 찾으세요? ??? 구성 파일.

    문서 루트를 공용 디렉토리로 설정하면 다른 파일에 직접 액세스 할 수 없습니다. 아파치 / nginx /에서 그것을 찾으세요? ??? 구성 파일.

  5. ==============================

    5.실행중인 웹 서버에 따라 다릅니다. 아파치를 사용하면 .htaccess 파일이되는 반면 Nginx는 서버 설정 파일에서 처리됩니다.

    실행중인 웹 서버에 따라 다릅니다. 아파치를 사용하면 .htaccess 파일이되는 반면 Nginx는 서버 설정 파일에서 처리됩니다.

  6. ==============================

    6..htaccess 파일도 거부 할 수 있습니다.

    .htaccess 파일도 거부 할 수 있습니다.

    <Files "composer.json">
    Order Allow,Deny
    Deny from all
    </Files>
    
  7. ==============================

    7.Apache에서는 Laravel 프로젝트의 루트 디렉토리에 .htaccess 파일을 만들어 모든 요청을 public / 디렉토리에 다시 쓸 수 있습니다.

    Apache에서는 Laravel 프로젝트의 루트 디렉토리에 .htaccess 파일을 만들어 모든 요청을 public / 디렉토리에 다시 쓸 수 있습니다.

    <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule ^(.*)$ public/$1 [L]
    </IfModule>
    
  8. ==============================

    8.단순히 공란을 만들자.

    단순히 공란을 만들자.

    config 디렉토리에 파일을 저장하고 사용자에게 accuser 사용자에게 알리려는 메시지를 파일에 씁니다.

    전의. 서버 별 forbindon 액세스

  9. ==============================

    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 파일에 여러 번 추가 할 수 있습니다.

  10. from https://stackoverflow.com/questions/37507209/how-to-hide-config-files-from-direct-access by cc-by-sa and MIT license