enlightn / security-checker
基于安全建议数据库的PHP依赖项漏洞扫描器。
v2.0.0
2023-12-10 07:17 UTC
Requires
- php: >=8.2
- ext-json: *
- guzzlehttp/guzzle: ^6.3|^7.0
- symfony/console: ^7
- symfony/finder: ^3|^4|^5|^6|^7
- symfony/process: ^3.4|^4|^5|^6|^7
- symfony/yaml: ^3.4|^4|^5|^6|^7
Requires (Dev)
- ext-zip: *
- friendsofphp/php-cs-fixer: ^2.18|^3.0
- phpunit/phpunit: ^5.5|^6|^7|^8|^9
README
Enlightn安全检查器是一个命令行工具,用于检查您的应用程序是否使用了已知安全漏洞的依赖项。它使用安全建议数据库。
安装选项
- 您可以使用Composer全局安装Enlightn安全检查器,以在多个项目中使用。
composer global require enlightn/security-checker
- 您还可以使用Composer将Enlightn安全检查器作为dev依赖项安装到您的项目中。
composer require --dev enlightn/security-checker
- 除了通过Composer安装外,您还可以下载security-checker.phar文件。然后,在下面的命令中,您可以将
security-checker
替换为security-checker.phar
。
使用方法
要检查依赖项中的安全漏洞,您可以运行security:check
命令。
php security-checker security:check /path/to/composer.lock
如果没有漏洞,此命令将返回成功状态码0
;如果有至少一个漏洞,则返回1
。
注意:如果您的工作目录不在您的路径中,则需要提供安全检查器可执行文件的完整路径。例如
php vendor/bin/security-checker security:check /path/to/composer.lock
选项
格式
默认情况下,此命令以ANSI格式显示结果。您可以使用--format
选项以JSON格式显示结果。
php security-checker security:check /path/to/composer.lock --format=json
排除dev依赖项
如果您想从漏洞扫描中排除dev依赖项,可以使用--no-dev
选项(默认为false)。
php security-checker security:check /path/to/composer.lock --no-dev
允许漏洞
如果您想排除一些漏洞,可以使用--allow-list
选项,通过传递CVE标识符或CVE标题。您也可以传递多个值。
php security-checker security:check /path/to/composer.lock --allow-list CVE-2018-15133 --allow-list "untrusted X-XSRF-TOKEN value"
不要忘记用引号将标题括起来。
自定义缓存建议数据库的目录
默认情况下,SecurityChecker
API和security:check
命令使用由PHP函数sys_get_temp_dir
返回的目录来存储缓存的建议数据库。如果您想修改目录,可以使用--temp-dir
选项。
php security-checker security:check /path/to/composer.lock --temp-dir=/tmp
API
您还可以直接在自己的代码中使用API,如下所示
use Enlightn\SecurityChecker\SecurityChecker; $result = (new SecurityChecker)->check('/path/to/composer.lock');
上面的结果是关联数组。键是包名,值是基于您的包版本的漏洞数组。以下是一个JSON编码的示例
{ "laravel/framework": { "version": "8.22.0", "time": "2021-01-13T13:37:56+00:00", "advisories": [{ "title": "Unexpected bindings in QueryBuilder", "link": "https://blog.laravel.net.cn/security-laravel-62011-7302-8221-released", "cve": null }] } }
贡献指南
感谢您考虑为Enlightn安全检查器项目做出贡献!贡献指南可以在此处找到。
许可证
Enlightn安全检查器遵循MIT许可证。