enlightn/security-checker

基于安全建议数据库的PHP依赖项漏洞扫描器。

v2.0.0 2023-12-10 07:17 UTC

This package is auto-updated.

Last update: 2024-09-10 08:47:31 UTC


README

tests MIT Licensed Latest Stable Version Total Downloads

Enlightn安全检查器是一个命令行工具,用于检查您的应用程序是否使用了已知安全漏洞的依赖项。它使用安全建议数据库

安装选项

  1. 您可以使用Composer全局安装Enlightn安全检查器,以在多个项目中使用。
composer global require enlightn/security-checker
  1. 您还可以使用Composer将Enlightn安全检查器作为dev依赖项安装到您的项目中。
composer require --dev enlightn/security-checker
  1. 除了通过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许可证