🛡️ Laravel 安全基线:您管道应得的守护者
Source: Dev.to
它在你的 Laravel 项目中检查的内容
- 环境安全:
APP_DEBUG、APP_KEY、APP_URL、APP_ENV - 安全的 Cookie 与 Header:HSTS、CSP、
X-Frame-Options、SameSite、Secure、HttpOnly - 风险配置:CORS 通配符、弱日志级别、暴露的存储
- 调试泄漏:Telescope、Horizon、
phpinfo()以及不该出现的调试路由 - 依赖卫生:过时或不安全的 Composer 包
- 元数据安全:
APP_URL不匹配、宽松的会话驱动、详细错误
可选的 --fail-on 检测可以在 CI 中发现不安全的值时主动阻止部署。当检测到关键问题时,工具会以失败代码退出,例如:
🚨 CI BLOCKED — APP_DEBUG=true detected in production environment.
快速安装
composer require ind4skylivey/laravel-secure-baseline --dev
最小化 GitHub Actions 步骤
- run: php artisan secure:scan --fail-on=fail --error-exit-code=1
将其添加到你的 GitHub Actions CI 作业中,为工作流提供安全姿态和闪耀的护盾。
它生成的输出格式
- CLI 文本报告
- HTML 仪表盘
- JSON 结构化输出
- Markdown 报告
- SARIF(用于 GitHub 安全警报)
- CI 失败时的 GitHub 注释
- SARIF + Markdown 组合,营造“专业安全传说”氛围
--fail-on=fail 模式在发现问题时阻止部署。
团队采用它的原因
- 当不安全环境中出现
APP_DEBUG=true时,阻止 CI 部署。 - 默认强制使用安全的 Cookie 和 Header。
- 在不进行外部调用的情况下扫描依赖。
- 输出 GitHub 友好的安全格式,如 SARIF。
- 快速、本地执行,不会收集超出终端注意范围的任何数据。
演示
✅ All clear. The deploy rune glows softly. You may pass.
该工具读取代码,捕获问题并生成报告——基本上就是给你的 CI 加上盔甲。
为堡垒贡献
有新的检查想法吗?尽管提出。合理的、离奇的、灵感来源的——任何可以通过 CI 和实际验证的检查都欢迎。
- 安全建议请写入
SECURITY.md。 - 通过 Pull Request 提交代码改进。
- 通过 Issue 进行文明讨论。
CI 流水线应当严格、可预测且快速。安全检查也应如此。使用 Laravel Secure Baseline,部署不再出错,应用不再泄漏,开发者可以安然入睡。宇宙的奇异性是恒定的,但你的部署流水线不必如此。