实际评估enlightn时,我先确认它解决的具体问题:您的性能和安全顾问,工匠指挥。在安全分析场景里,常见问题是授权边界、证据完整性和误报需要同时控制,这正是评估时需要盯住的地方。我的评估方法是在明确授权的样例或离线靶场中验证,然后检查输入边界、证据链、误报率和安全中止机制是否与文档一致。我的判断是,它更适合具备授权环境和复核能力的安全人员;若眼下没有这类需求,先保留观察即可。
Enlightn
A Laravel 工具来提升应用程序的性能 & Security
简介
将 Enlightn 视为您的性能和安全顾问。 Enlightn 将“审查”您的代码和服务器配置,并为您提供有关提高性能、安全性和可靠性的可行建议!
Enlightn OSS(开源软件)版本具有 66 项自动检查功能,可扫描您的应用程序代码、Web 服务器配置和路由,以识别性能瓶颈、可能的安全漏洞和代码可靠性问题。
Enlightn Pro(商业版)可在 Enlightn 网站 上购买,并具有额外的 64 项自动检查(总共 131 项检查)。
性能检查(37 项自动检查,包括 19 项 Enlightn Pro 检查)
安全检查(49 项自动检查,包括 28 项 Enlightn Pro 检查)
可靠性检查(45 项自动检查,包括 17 项 Enlightn Pro 检查)
文档
131 项可用检查中的每一项都有详细记录。您可以在此处找到完整的文档 here。
兼容性矩阵
| 启蒙 | 拉维尔 | 拉拉斯坦 | PHPStan |
|---|---|---|---|
| 1.x | 6.x-9.x | 0.6x-1.x | 0.12倍-1.1倍 |
| 2.x | 9.x-11.x | 2.x | 1.4倍+ |
注意:相同的兼容性矩阵适用于 Enlightn Pro 版本。
安装Enlightn OSS
您可以使用 Composer 包管理器将 Enlightn 安装到您的项目中:
composer require enlightn/enlightn
安装Enlightn后,您可以使用Artisan命令vendor:publish发布其资源:
php artisan vendor:publish --tag=enlightn
注意:如果您需要安装Enlightn Pro,请访问Enlightn网站(此处为)上的文档。
跑步启蒙
安装 Enlightn 后,只需运行 enlightn Artisan 命令即可运行 Enlightn:
php artisan enlightn
如果您希望在终端之外的 Enlightn Web UI 中查看报告,您可以添加 --report 标志:
php artisan enlightn --report
如果您希望运行特定的分析器类,您可以将它们指定为可选参数:
php artisan enlightn Enlightn\Enlightn\Analyzers\Security\CSRFAnalyzer Enlightn\EnlightnPro\Analyzers\Security\DirectoryTraversalAnalyzer
请注意,类名应该是完全限定的,并使用双斜杠转义,如上所述。
建议在生产环境中运行
如果您想获得完整的 Enlightn 体验,建议您至少在生产环境中运行一次 Enlightn。这是因为 Enlightn 的一些检查是特定于环境的。因此,它们可能仅在您的应用程序环境处于生产环境时才会被触发。
如果您不想在生产环境中运行,您可以通过将 APP_ENV 设置为生产环境、设置尽可能接近生产环境的服务和配置并在本地运行生产部署脚本来模拟生产环境。然后运行 Enlightn Artisan 命令。
查看详细错误消息
默认情况下,enlightn Artisan 命令会突出显示文件路径、关联的行号以及每个失败检查的消息。如果您希望显示每行的详细错误消息,您可以使用 --details 选项:
php artisan enlightn --details
在 CI 环境中的使用
如果您希望将 Enlightn 与 CI 集成,只需在 CI/CD 工具中运行 Enlightn 时触发 --ci 选项即可:
php artisan enlightn --ci
如果您希望在 Enlightn Web UI 中查看您的 CI 报告,您可以添加 --report 标志。请记住将您的项目凭据添加到 config/enlightn.php 文件中,如 此处 所述。
php artisan enlightn --ci --report
Enlightn 为您预先配置了哪些分析仪可以在 CI 模式下运行。因此,上述命令排除了需要完整设置才能运行的分析器(e.g。使用动态分析的分析器)。
有关 CI 集成的更多信息,请参阅 Enlightn 文档。
建立基线
有时,特别是在 CI 环境中,您可能希望将当前报告的错误列表声明为“基线”。这意味着在后续运行中不会报告当前错误,并且只会标记新错误。
要自动生成基线,您可以运行 enlightn:baseline Artisan 命令:
php artisan enlightn:baseline
如果您希望在 CI 模式下运行此命令,可以使用 --ci 选项:
php artisan enlightn:baseline --ci
有关建立基线的更多信息,请参阅 文档。
网页 UI
Enlightn 提供了一个漂亮的 Web UI 仪表板,您可以在其中查看从 CI 或计划的命令运行触发的 Enlightn 报告。
网络 UI 对所有用户免费,包括以下内容:
要访问 Web UI,您所需要做的就是在 Enlightn 网站上免费注册,并按照此处 中提到的 [的说明进行操作。
安排 Enlightn 运行
除了将 Enlightn 与 CI/CD 工具集成之外,按固定频率(例如每天或每周)安排 Enlightn 运行也是一个很好的做法,如下所示:
// In your app/Console/Kernel.php file:
/**
* Define the application's command schedule.
*
* @param IlluminateConsoleSchedulingSchedule $schedule
* @return void
*/
protected function schedule(Schedule $schedule)
{
$schedule->command('enlightn --report')->runInBackground()->daily()->at('01:00');
}
这将允许您监视 Enlightn 的动态分析检查,这些检查通常被排除在 CI 之外。可以在 Enlightn Web UI 上查看报告。
GitHub 机器人集成
Enlightn 提供了一个 GitHub 机器人,它可以准备一份突出显示失败检查的报告,还可以在引入新问题的代码行上添加拉取请求的审查注释。
要与 Enlightn GitHub 机器人集成,请参阅 文档。
检查失败
所有失败的检查都将包含失败原因的描述以及相关的代码行(如果适用)以及特定检查文档的链接。
报告卡
最后,运行所有检查后,enlightn Artisan 命令将输出一份报告卡,其中包含有关通过、失败或跳过的检查数量和百分比的信息。
指示为“不适用”的检查不适用于您的特定应用程序,因此被跳过。例如,CSRF 分析器不适用于无状态应用程序。
“错误”行下报告的检查表明分析仪在分析过程中因异常而失败。通常,这种情况不会发生,但如果发生,将会显示相关的错误消息,并且可能与您的应用程序有关。
我应该多久运行一次 Enlightn?
一个好的做法是每次部署代码或推送新版本时运行 Enlightn。建议将 Enlightn 与 CI/CD 工具集成,以便每次推送或新版本都会触发它。
除了自动 CI 检查之外,您还应该使用如上所述的预定控制台命令定期运行 Enlightn。这将允许您监视动态分析检查,这些检查通常被排除在 CI 之外。
精选于
使用 Enlightn 的旗舰 OSS 项目
OS 兼容性
Enlightn 仅支持 MacOS 和 Linux 系统。目前不支持 Windows。
支持政策
我们的支持政策可以在 Enlightn 文档 中找到。