常见问题:ECJia到家:如何禁止浏览器访问.env文件,保护数据安全

来自ECJiaWiki
跳转至: 导航搜索

.env文件简单介绍

.env文件有什么作用?

.env 文件位于项目根目录下,作为全局环境配置文件,里面包含敏感信息,包括数据库、AUTH_KEY等,一旦泄露,十分危险!

注意事项:

  1. 配置文件的 key 全部小写,注意在配置文件的数组Key。
  2. 子站点的配置文件会继承主站点的配置文件,所以子站点的配置文件只需指定你需要覆盖的配置选项即可。
  3. 本地环境测试的配置项移至 local 目录,位于 configs/local 位置,命名与主配置文件名称一致。
  4. 本地环境测试的配置项也继承当前站点的配置,只需指定你需要覆盖的配置选项即可。
  5. 使用本地环境测试,需要在主站点或者子站点的根目录下放入文件 .env 。
  6. 使用本地环境测试,.env 文件不需要提交到版本库中 。


.env 文件泄露的危害

未禁止访问,浏览器可以访问,敏感信息泄露

如何禁止浏览器访问.env文件07.png


禁止访问后,浏览器不能访问

如何禁止浏览器访问.env文件08.png

如何保护.env 文件

为了网络、数据安全,禁止扫描工具直接扫描到某些包含敏感信息的文件,比如数据库配置等,我们需要采取措施禁止改文件被浏览器访问

Nginx 环境下

如果不是使用官方环境配置,在自己服务器对应的nginx配置中插入这段代码就可以禁止访问 .env 文件了

 location ~ \.env {
            deny all;
        }

使用yum安装的nginx配置文件默认路径在/etc/nginx/conf.d/default.conf 可以直接使用编辑的命令来进行编辑,

vim /etc/nginx/conf.d/default.conf

default.conf配置文件内的内容

#
# The default server
#
server {
    listen       80;
    server_name  _;

    location / {
        root   /ecmoban/www;
        index  index.php index.html index.htm;

        location ~ \.php {
            root           /ecmoban/www;
            fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
            fastcgi_index  index.php;
            fastcgi_split_path_info ^(.+\.php)(/?.+)$;
            fastcgi_param PATH_INFO $fastcgi_path_info;
            fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
            fastcgi_pass   127.0.0.1:9000;
            include       fastcgi_params;
        }
         location ~ \.env {
            deny all;
        }
    }

    error_page  404              /404.html;
    location = /404.html {
        root   /usr/share/nginx/html;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    location ^~ /content/storages/ {
        error_page 404 = /usr/share/nginx/html/404.html;
    }

    location ^~ /content/uploads/ {
        root   /ecmoban/www;
        index  index.html;
    }
}

Nginx完整的配置图

如何禁止浏览器访问.env文件06.png

Apache 环境下

在网站根目录下,添加.htaccess文件,用于禁止访问 .env 文件

如何禁止浏览器访问.env文件09.png

文本内容如下:

如何禁止浏览器访问.env文件10.png

文本内容如下:

<Files ~ "\.env$">
   Order allow,deny
   Deny from all
</Files>

IIS环境下

Step1:登录你的 Windows Server服务器

如何禁止浏览器访问.env文件01.png

Step2:打开服务器管理器,【角色】-【Web 服务器(IIS)】-【Internet 信息服务】,选中你的项目(网站),然后在右侧的功能视图界面找到【请求筛选 】,双击进入

如何禁止浏览器访问.env文件01.png


Step3:设置【文件扩展名】或者【隐藏段】,2者选一个,添加 .env ,确定就可以了。

如何禁止浏览器访问.env文件03.png

Step4:设置【文件扩展名】

如何禁止浏览器访问.env文件04.png

Step5:设置【隐藏段】

如何禁止浏览器访问.env文件05.png