How to hide config files from direct access?

后端 未结 9 1977
野性不改
野性不改 2020-11-22 14:46

I am using Laravel for web app. Uploaded everything on production and found out that some of the files can be directly accessed by url - for example http://example.com/compo

相关标签:
9条回答
  • 2020-11-22 15:15

    Point your web server to a public directory and restart it.

    For Apache you can use these directives:

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

    Also You Can Deny files in .htaccess too.

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

    for multiple files you can add above files tag multiple times in .htaccess files.

    0 讨论(0)
  • 2020-11-22 15:18

    You're using wrong web server configuration. Point your web server to a public directory and restart it.

    For Apache you can use these directives:

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

    For nginx, you should change this line:

    root /path_to_laravel_project/public;
    

    After doing that, all Laravel files will not be accessible from browser anymore.

    0 讨论(0)
  • 2020-11-22 15:21

    Point the web server to the public directory in the project's root folder

    project root folder/public
    

    but if you don't have the public folder and you are already pointing to the root folder, you can deny access by writing the following code in .htaccess file.

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

    in the above code, first we are denying from all and allowing only from the own server (localhost to the server) to get executed, and hence we can protect it from outside users.

    0 讨论(0)
提交回复
热议问题