TP6开启调试模式后,会暴露数据库用户名和密码

浏览:203 发布日期:2020/03/19
5.0.0 - 致命 - 未处理
TP6开启调试模式后,会暴露数据库用户名和密码,存在安全隐患
项目放到线上后,难免用到开启调试模式的时候。
发现,一旦开启项目根目录下的 .env 文件的 APP_DEBUG = true 后,
在返回的调试结果的 “Environment Variables” 这一项里,
会把主机名、数据库名、数据库用户名、数据库密码、数据库端口号等数据库信息,给暴露出来,
存在非常大的安全隐患。

图片上传不了,直接文字展示吧

如下:

Environment Variables
APP_DEBUG 1
APP_DEFAULT_TIMEZONE Asia/Shanghai
DATAbase_TYPE mysql
DATAbase_HOSTNAME 127.0.0.1
DATAbase_DATAbase xhy
DATAbase_USERNAME root
DATAbase_PASSWORD root
DATAbase_HOSTPORT 3306
DATAbase_CHARSET utf8
DATAbase_DEBUG 1
LANG_DEFAULT_LANG zh-cn
ThinkPHP Constantsempty
ThinkPHP V6.0.2 { 十年磨一剑-为API开发设计的高性能框架 } - 官方手册

相应的,在 TP5.1.39 这个版本里,
“Environment Variables” 的返回项里为 empty,并没有返回数据库相关的信息。

如下:

Environment Variables empty
ThinkPHP Constants empty
ThinkPHP V5.1.39 LTS { 十年磨一剑-为API开发设计的高性能框架 }
评论(
后面还有条评论,点击查看>>