johnathanmiller/secure-env-php

为生产使用加密环境文件。

v2.0.1 2019-01-07 06:56 UTC

This package is auto-updated.

Last update: 2024-09-07 20:07:46 UTC


README

Build Status

环境加密和解密库。
防止在生产环境中提交并暴露易受攻击的明文环境变量。

您可以在 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 键接受方括号中的默认值。

Encryption Prompts

加密提示

  1. 您要加密的 .env 文件路径。
  2. 输入 "y" 或 "yes" 生成新的密钥文件。否则,在提示时输入密钥文件路径。
  3. 选择加密算法或接受提供的默认值。要查看支持的算法列表,请访问:https://secure.php.net/manual/en/function.openssl-get-cipher-methods.php
  4. 保存加密环境文件的路径。

成功完成提示后,您现在应该有一个加密的环境文件。

导入和实例化

导入命名空间环境

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 启发。