
你的 laravel 应用若暴露了 `.env` 文件且启用了调试模式,攻击者可能通过邮件配置泄露窃取 smtp 凭据并发送恶意邮件;立即禁用调试模式、加固环境配置是首要防御措施。
这是一起典型的 Laravel SMTP Crack 攻击事件:攻击者利用你站点中未受保护的 .env 文件(如通过 http://yoursite.com/.env 直接可访问)或调试信息泄露,获取了 SMTP 邮箱账号、密码、HOST 和端口等敏感配置,并伪造发件人身份批量外发钓鱼/广告邮件——邮件中出现的 LARAVEL SMTP CRACK | HOST: mail.wokforge.com 及完整凭证正是攻击成功的明确证据。
? 立即执行的关键修复步骤
-
强制关闭调试模式(最紧急)
编辑 .env 文件,确保以下两行严格设置为生产环境值:APP_ENV=production APP_DEBUG=false
✅ 保存后务必运行 php artisan config:clear 清除配置缓存,否则更改可能不生效。
-
彻底禁止 .env 文件公网访问
- Apache 用户:在项目根目录的 .htaccess 中添加:
Order Allow,Deny Deny from all - Nginx 用户:在 server 块中添加:
location ~ /\.env { deny all; }
- Apache 用户:在项目根目录的 .htaccess 中添加:
-
重置所有泄露的凭证
- 立即登录 mail.wokforge.com 后台,重置该邮箱账户密码;
- 如使用第三方 SMTP(如 Mailgun、SendGrid),在对应平台轮换 API Key 或 SMTP 密码;
- 检查 config/mail.php 是否硬编码了敏感信息(❌ 错误做法),应全部移至 .env 并确保其不可访问。
-
验证服务器安全基线
- 运行 ls -la 确认 .env 权限为 600 或 640(非 644 或 755);
- 检查 storage/logs/laravel.log 是否存在异常邮件发送记录(搜索 Swift_Transport 或 sendmail);
- 使用 php artisan tinker 执行 config('mail'),确认输出中无明文密码(密码应由 env('MAIL_PASSWORD') 动态读取)。
⚠️ 注意:仅修改 .env 不足以挽回已泄露的凭证——攻击者可能已利用该账户持续发信数小时。务必同步联系邮件服务商封禁异常 IP,并启用 SMTP 登录二次验证(如支持)。
✅ 后续加固建议
- 启用 Laravel 的 Mail Throttling(Laravel 9+)限制单IP单位时间发信量;
- 在 App\Providers\AppServiceProvider::boot() 中添加日志钩子,监控异常 Mail::send() 调用;
- 将邮件服务迁移至专用事务邮件平台(如 Resend、Postmark),避免自建 SMTP 风险;
- 定期执行 php artisan app:check(需 Laravel 10.28+)或使用 Laravel Security Checker 扫描潜在漏洞。
安全不是功能,而是持续过程。一次 .env 泄露可能引发连锁攻击,而 APP_DEBUG=false 是你防线的第一道闸门——永远不要在生产环境开启调试模式。










