php-tuf / composer-integration
使用PHP-TUF保护Composer下载的证明概念。
Requires
- composer-plugin-api: ^2.6
- guzzlehttp/psr7: ^2.4
- php-tuf/php-tuf: 0.1.6
Requires (Dev)
- composer/composer: ^2.1
- dms/phpunit-arraysubset-asserts: ^0.5.0
- phpunit/phpunit: ^9.5
- symfony/process: ^6
- dev-main
- 1.0.0-alpha11
- 1.0.0-alpha10
- 1.0.0-alpha9
- 1.0.0-alpha8
- 1.0.0-alpha7
- 1.0.0-alpha6
- 1.0.0-alpha5
- 1.0.0-alpha4
- 1.0.0-alpha3
- 1.0.0-alpha2
- 1.0.0-alpha1
- 0.0.3
- 0.0.2
- 0.0.1
- dev-cache-verified
- dev-parallel-delegates
- dev-tedbow-workflow-everyday
- dev-php-tag-0-1-2
- dev-known-compatible-php-tuf
- dev-drupal-recommended-project
- dev-test-workflow
- dev-lazy-providers
- dev-notempty
- dev-dirname
- dev-revert-crypto-udpate
This package is auto-updated.
Last update: 2024-09-06 19:54:08 UTC
README
这是一个实验性的Composer插件,将Composer 2.6及以后版本与PHP-TUF结合。
该插件旨在演示在采用Composer v2包仓库时,如何将TUF安全添加到
- Composer的包发现过程中。
- Composer选择的下载包。
重要
此插件及其依赖的PHP-TUF库处于预发布状态,不能被视为TUF框架的完整或安全实现。
目前应仅用于测试、开发和反馈。**不要在生产环境中用于安全下载**!!
概述
该插件检查composer
类型的仓库。对于包含附加密钥tuf
的任何仓库,它将在包发现和下载操作期间调用PHP-TUF,以验证仓库和包没有被篡改。
根据TUF规范,使用此插件的项目必须为它们想要使用TUF保护的每个仓库提供一组受信任的密钥。每个受TUF保护的仓库应提供一个包含其根密钥的JSON文件。文件可以以几种方式命名,以下顺序将搜索
- 完整仓库URL的SHA-256哈希值。例如,如果仓库URL是
http://repo.example.net/composer
,则JSON文件可以命名为d82cfa7a5a4ba36bd2bcc9d3f7b24bdddbe1209b71ebebaeebc59f6f0ea48792.json
。 - 仓库的主机名。继续前面的例子,JSON文件可以命名为
repo.example.net.json
。
所有根密钥文件必须存储在名为tuf
的目录中,紧邻项目的composer.json
文件。
TUF仓库必须跟踪Composer仓库,在发布新版本时为它们签名,以及为它们提供Composer包元数据。
使用方法
# Configure Composer to allow the plugin to run.
composer config allow-plugins.php-tuf/composer-integration true
# Install the plugin.
composer require php-tuf/composer-integration
# Enable TUF protection for a repository defined in composer.json. For example,
# if you have a Drupal site, the following will probably work.
composer tuf:protect https://packages.drupal.org/8
# Install a package with safety guaranteed by TUF!
composer require drupal/token
性能
没有办法绕过:此插件会影响Composer的性能。这是因为,对于Composer检查的每个文件(包括包元数据),TUF都需要下载其他文件,以确认Composer正在查看的文件没有被篡改。
性能影响通常并不极端,但可能非常明显,这取决于你的项目有多大以及你要求Composer做什么。性能也可能受到服务器上TUF设置的配置方式的影响,这可能对每个仓库都不同。
为了减轻这一点,插件将尽量将网络活动降到最低;它必须进行的任何网络活动都将尽量并行处理。此外,它还进行相当积极的缓存,同时保持TUF自身更新的能力。尽管如此,**你通常应该预计启用TUF时Composer的速度大约慢1.5到3倍**。