Laravel.ENV 可访问性?

Laravel .ENV accessibility?

我的 SES 密钥已被泄露,因为 Laravel 意外设置为 'debug=true',这暴露了已修复的凭据。这是我的疏忽,但是,在进行全面挖掘时,我在我的 apache 日志文件中看到了对 .env 的访问请求,我不明白如何或为什么。当我尝试访问该文件时,我无法访问。如有任何帮助,我们将不胜感激!

192.237.162.xx - - [17/Jul/2020:18:36:54 +0000] "GET /.env HTTP/1.1" 200 1288 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)"

如其他人所述,配置错误可能会导致 .env 文件暴露。机器人会搜索它,但如果您无法从 Web 访问它,它们也不会。

为防止这种情况再次发生,请使用 debug_hide 键在 config/app 中开始配置黑名单。这对于文档 here 中描述的所有 Laravel 项目都是必须的。它允许您混淆给定 .env 键的值。

如果您的环境被暴露,您绝对需要检查您的数据库是否可以通过本地主机访问,如果可以,您必须更改密码和任何其他敏感信息,如电子邮件设置。

如果APP_KEY露出来,需要旋转一下

更改 APP_KEY 时:

  • 你必须知道你是否使用Laravel的默认加密方法。如果您正在加密数据,则需要一个计划来使用旧密钥解密此数据并使用新密钥对其进行加密。
  • 一旦您使用 php artisan key:generate 更改了该密钥,所有会话都将过期。

如果加密数据不重要,例如登录等破坏性功能,请将您的旧应用程序密钥存储在某个地方(并确保您不会丢失它!)并立即重新生成一个新密钥。然后想出一个计划,用你的新密钥转换你的加密数据。

一个常见的误解是您的密码在更改密钥后将无法使用,这是无稽之谈。密码经过哈希处理,未加密。

直到今天,我仍然震惊地看到 debug_hide 键仍然 而不是 出现在 current default config/app 中。在我看来,在默认配置中隐藏 APP_KEY 是至关重要的。