johnathanmiller / secure-env-php
为生产使用加密环境文件。
v2.0.1
2019-01-07 06:56 UTC
Requires
- php: >=7.1
Requires (Dev)
- phpunit/phpunit: ^7.5
README
环境加密和解密库。
防止在生产环境中提交并暴露易受攻击的明文环境变量。
您可以在 Medium 上查看更深入的教程。
安装
使用 Composer 安装 secure-env-php
composer require johnathanmiller/secure-env-php
.env
在您的项目中创建一个包含环境变量的 .env
文件。
DB_HOST=localhost DB_USER=username DB_PASS=password
加密
在您的项目目录中执行 vendor/bin/encrypt-env
,并按照命令提示加密您的 .env
文件。您可以按 Enter 键接受方括号中的默认值。
加密提示
- 您要加密的 .env 文件路径。
- 输入 "y" 或 "yes" 生成新的密钥文件。否则,在提示时输入密钥文件路径。
- 选择加密算法或接受提供的默认值。要查看支持的算法列表,请访问:https://secure.php.net/manual/en/function.openssl-get-cipher-methods.php。
- 保存加密环境文件的路径。
成功完成提示后,您现在应该有一个加密的环境文件。
导入和实例化
导入命名空间环境
use SecureEnvPHP\SecureEnvPHP;
使用您的解密参数实例化类。第一个参数是加密环境文件的路径,第二个参数是密钥文件路径,可选的第三个参数可以设置为您的加密算法选择(这需要与您用于加密环境文件的算法匹配)。
(new SecureEnvPHP())->parse('.env.enc', '.env.key');
解密选项
检索 Env 值
在实例化 SecureEnvPHP 类之后,您可以通过调用带有变量名的 getenv
来在项目中检索您的值,例如 getenv('DB_HOST')
。
完整示例
<?php require_once './vendor/autoload.php'; use SecureEnvPHP\SecureEnvPHP; (new SecureEnvPHP())->parse('.env.enc', '.env.key'); $host = getenv('DB_HOST');
致谢
Secure Env PHP 受 NodeJS 的 https://github.com/kunalpanchal/secure-env 启发。