re2bit / yii2-secrets
Yii2 的密钥存储和提取器
Requires
- php: ^7|^8
- re2bit/secrets: 1.0.0-alpha.1.1
Requires (Dev)
- phpunit/phpunit: ^6|^7|^8
- symfony/dotenv: *
- symfony/filesystem: *
- yiisoft/yii2: 2.0.49.3
This package is auto-updated.
Last update: 2024-09-21 09:28:07 UTC
README
本模块提供了一种安全的方式来管理敏感信息,灵感来源于 Symfony Secrets 功能。它设计为与 PHP 7.0 兼容,利用 Sodium 扩展或 paragonie/sodium_compat
进行现代加密。
要求
- PHP 7.0 或更高版本
- Sodium PHP 扩展或
paragonie/sodium_compat
- Yii 2
设置
-
安装依赖项:确保在您的 PHP 环境中启用了 Sodium 扩展,如果没有,请安装
paragonie/sodium_compat
。 -
配置 Yii2 应用程序:修改您的 Yii2 应用程序配置以包含 Secrets 模块。以下是设置方法
-
更新 Composer:确保您的
composer.json
文件包含必要的库,并更新您的项目依赖关系composer require paragonie/sodium_compat
如果没有 Sodium PHP 扩展,这将安装与 PHP 7.0 兼容所需的库。
-
修改配置文件:在您的 Yii2 应用程序配置文件中(通常是
config/main.php
或 Web 应用程序的config/web.php
),添加以下配置以集成管理密钥的 Vault 组件'components' => [ 'cache' => [ 'class' => 'yii\caching\FileCache', ], 'vault' => [ 'class' => 'Re2bit\Yii2Secrets\Vault', ], ], 'container' => [ 'definitions' => [ 'Re2bit\Yii2Secrets\Vault' => [ 'keysDir' => '@app/config/secrets', // adjust the path as needed ], ], ],
-
调整入口点:在应用程序的入口点中,例如 Web 应用程序的
index.php
或控制台应用程序的yii
脚本中,初始化 Vault 和 ConfigDecryptAdapter$vault = new Vault(['keysDir' => __DIR__ . '/config/secrets']); $configDecryptAdapter = new ConfigDecryptAdapter($vault); $configDecryptAdapter->parse($config);
-
此设置确保您的 Yii2 应用程序在 PHP 7.0 下也能安全地管理密钥,利用现代加密标准。
在配置中使用密钥
要将密钥包含在配置中,请使用 %vault(secretName)%
格式。在解析配置时,这些占位符将替换为其解密值。
示例
$config = [ 'components' => [ 'db' => [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=localhost;dbname=mydatabase', 'username' => '%vault(DB_USERNAME)%', 'password' => '%vault(DB_PASSWORD)%', ], ], ];
在此示例中,%vault(DB_USERNAME)%
和 %vault(DB_PASSWORD)%
将在配置解析过程中替换为其各自的解密值。
许可证
此软件包可在 MIT 许可下使用。
致谢
此库基于并受到以下人员工作的启发:
- Tobias Schultze
- Jérémy Derussé
- Nicolas Grekas
来自 Symfony 框架。它已被调整为与 PHP 7.0 兼容,重点在于使用 Sodium 进行加密。