如何保持敏感信息的秘密吗
编辑该页面环境变量是最好的方式来存储配置取决于应用程序是运行在哪里——例如,一些API键可能被设置为一个值在开发本地生产,另一个值。
当这些值敏感的,需要保密,您可以安全地存储它们通过使用Symfony的秘密管理系统——有时被称为“金库”。ob娱乐下载
请注意
的秘密系统需要钠与PHP 7.2绑定的PHP扩展。如果您正在使用一个PHP版本的早些时候,你可以安装libsodiumPHP扩展或使用paragonie / sodium_compat包中。
这将产生不对称的一对加密密钥。每一个环境都有自己的一组键。假设你在本地编码dev
环境,这将创建:
-
配置/机密/ dev / dev.encrypt.public.php
- 用于加密/秘密添加到库。可以安全地。
-
配置/机密/ dev / dev.decrypt.private.php
-
用于解密/阅读的秘密金库。的
dev
解密密钥可以承诺(假设没有高度敏感的秘密存储在dev金库)但是刺激
解密密钥应该从来没有是承诺。
您可以生成一对密钥的刺激
运行环境:
1
美元APP_RUNTIME_ENV = prod php bin /控制台的秘密:生成密钥
这将生成配置/机密/刺激/ prod.encrypt.public.php
和配置/机密/刺激/ prod.decrypt.private.php
。
谨慎
的prod.decrypt.private.php
文件是高度敏感的。你的团队的开发人员,甚至持续集成服务不需要钥匙。如果解密密钥暴露(例如雇员离开),你应该考虑通过运行:生成一个新的秘密:生成密钥——旋转
。
环境变量。小心你不意外地定义一个秘密和一个具有相同名称的环境变量:环境变量覆盖的秘密。
如果你存储DATABASE_PASSWORD
秘密,你可以参考:
- YAML
- XML
- PHP
1 2 3 4 5 6
#配置/包/ doctrine.yaml原则:dbal:密码:' % env (DATABASE_PASSWORD) %#……#……
实际值将在运行时解析:容器编译和缓存预热不需要解密密钥。
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。