bernardosecades/packagist-security-checker

检查您依赖项中可能存在的错误

v0.0.1 2016-09-29 11:37 UTC

This package is not auto-updated.

Last update: 2024-09-18 20:04:32 UTC


README

Build Status Scrutinizer Code Quality Code Coverage License SensioLabsInsight

关于

检查您依赖项中可能存在的错误(公开和私有依赖项)的工具。它基于 semver 来检测依赖项中的错误。

示例

在您的 composer.lock 中有这个包

"name": "twig/twig",
"version": "v1.24.1",

版本遵循格式:MAJOR.MINOR.PATCH,更多信息请参见 semver,因此如果 Packagist 中存在具有相同 MAJOR、MINOR 和下一个补丁版本的相同包,则意味着您的依赖项中存在可能的错误,并且您应该更新它们。

为什么?

Composer

使用 Composer,您可以知道您的依赖项是否需要更新,例如

composer outdate

此命令将显示您可以更新的包及其最新版本,但有时如果不需要这些包的新功能,则无需更新它们,但如果您的依赖项中有错误修复,则至少应将它们更新到最后的 PATCH 版本,您可以从 Packagist 安全检查器中获取这些信息。

SensioLabs - 安全检查器

这是一个由 SensioLabs 创建的出色工具。它检查您的应用程序是否使用了具有已知安全漏洞的依赖项。它使用 SensioLabs 安全检查 Web 服务和安全建议数据库。

通常,大多数流行库的错误报告给安全建议数据库,但不太流行的库可能没有报告或其数据库可能未更新。此外,此服务仅适用于公共存储库。

Packagist 安全检查器

Packagist 安全检查器使用 packagist 的 API 并使用语义版本控制来检测可能的错误。如果它们在 packagist 中启用,则它可以与流行和不流行的库一起使用。

此工具还可以用于您公司中的 packagist 的实例,因此在这种情况下可以检测私有存储库中的可能错误。

限制

  • 如果包不遵循语义版本控制(例如:标签 v0.9 而不是 v0.9.0),则该包将被忽略,工具无法检查它。
  • 可能会出现未正确使用语义版本控制的情况,并显示不良结果,但您始终可以检查该存储库的更改日志文件并自行确认。

用法

查看所有报告

./bin/packagist-security-checker sc <path-composer-lock-file>

仅查看错误

./bin/packagist-security-checker sc <path-composer-lock-file> --only-bugs

以 JSON 格式获取报告

./bin/packagist-security-checker sc <path-composer-lock-file> --only-bugs --format=json

使用您自己的 packagist 实例执行工具

./bin/packagist-security-checker sc <path-composer-lock-file> --packagist-url=https://packagist.mycompany.com

集成

您可以轻松地将检查器集成到您的项目中

在您的 Symfony 控制台应用程序中添加命令

在您的 Symfony 控制台应用程序中使用 PackagistSecurityCheckerCommand

use BernardoSecades\Packagist\SecurityChecker\PackagistSecurityChecker;
use BernardoSecades\Packagist\SecurityChecker\Command\PackagistSecurityCheckerCommand;

$app = new Application();
$app->add(new PackagistSecurityCheckerCommand(new PackagistSecurityChecker()));

在您的代码中直接使用类

或直接在您的代码中使用 PackagistSecurityChecker

use BernardoSecades\Packagist\SecurityChecker\PackagistSecurityChecker;

$ch = new PackagistSecurityChecker();
$reportPackages = $ch->check('/path/composer.lock');

安装

composer require bernardosecades/packagist-security-checker --dev

.phar 文件

您还可以使用已构建的最后构建的 .phar

$ git clone git@github.com:bernardosecades/packagist-security-checker.git
$ cd packagist-security-checker
$ php build/packagist-security-checker.phar

您可以复制 .phar 文件作为全局脚本

$ cp build/packagist-security-checker.phar /usr/local/bin/packagist-security-checker

编译

您还可以编译该包的自己的版本。(请记住,您需要在您的 php.ini 中设置 phar.readonly = Off)。

$ git clone git@github.com:bernardosecades/packagist-security-checker.git
$ cd packagist-security-checker.git
$ composer install
$ php bin/compile
$ sudo chmod +x build/packagist-security-checker.phar
$ build/packagist-security-checker.phar

您可以复制 .phar 文件作为全局脚本

$ cp build/packagist-security-checker.phar /usr/local/bin/packagist-security-checker

屏幕截图

./bin/packagist-security-checker sc tests/fixtures/composer.lock

full report

./bin/packagist-security-checker sc tests/fixtures/composer.lock --only-bugs

only bugs

./bin/packagist-security-checker sc tests/fixtures/composer.lock --only-bugs --format=json

json format