如何保持敏感信息的秘密吗 编辑该页面 警告:你浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 5.2,不再维护。 读这个页面的更新版本Symf欧宝娱乐app下载地址ony 6.2(当前的稳定版本)。 环境变量是最好的方式来存储配置取决于应用程序是运行在哪里——例如,一些API键可能被设置为一个值在开发本地生产,另一个值。 当这些值敏感的,需要保密,您可以安全地存储它们通过使用Symfony的秘密管理系统——有时被称为“金库”。欧宝娱乐app下载地址 请注意 的秘密系统需要钠与PHP 7.2绑定的PHP扩展。如果您正在使用一个PHP版本的早些时候,你可以安装libsodiumPHP扩展或使用paragonie / sodium_compat包中。 1 美元php bin /控制台的秘密:生成密钥 这将产生不对称的一对加密密钥。每一个环境都有自己的一组键。假设你在本地编码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文件是高度敏感的。你的团队的开发人员,甚至持续集成服务不需要钥匙。如果解密密钥暴露(例如雇员离开),你应该考虑通过运行:生成一个新的秘密:生成密钥——旋转。 秘密:设置命令,你应该加这个秘密dev和刺激金库: 1 2 3 4 5 6 7 #输入是隐藏在键入出于安全原因#设置默认发展值(在本地可以覆盖)美元php bin /控制台的秘密:集DATABASE_PASSWORD#设置您的生产价值美元APP_RUNTIME_ENV = prod php bin /控制台的秘密:集DATABASE_PASSWORD 这将创建一个新文件的秘密配置/机密/ dev和另一个配置/机密/刺激。你也可以设置在其他一些方面的秘密: 1 2 3 4 5 6 7 8 #提供一个阅读的秘密文件美元php bin /控制台的秘密:集DATABASE_PASSWORD ~ / / password.json下载#或内容传递给STDIN美元回声- n”美元DB_PASS”| php bin /控制台的秘密:集DATABASE_PASSWORD -#或让Symfon欧宝娱乐app下载地址y为您生成一个随机值美元php bin /控制台的秘密:集REMEMBER_ME——随机 环境变量。小心你不意外地定义一个秘密和一个具有相同名称的环境变量:环境变量覆盖的秘密。 如果你存储DATABASE_PASSWORD秘密,你可以参考: YAML XML PHP 1 2 3 4 5 6 #配置/包/ doctrine.yaml原则:dbal:密码:' % env (DATABASE_PASSWORD) %#……#…… 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 < !- - - - - -- - - - - -config/packages/doctrine.xml -->< /span>< ?xml version = " 1.0 " encoding = " utf - 8 " ? ><容器xmlns=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services”xmlns: xsi=“http://www.w3.org/2001/XMLSchema-instance”xmlns:原则=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/doctrine”xsi: schemaLocation=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services //www.oldmanjams.com/schema/dic/services/services-1.0.xsd //www.oldmanjams.com/schema/dic/doctrine //www.oldmanjams.com/schema/dic/doctrine/doctrine-1.0.xsd”><原则:配置><原则:dbal密码=“% env (DATABASE_PASSWORD) %”/ >< /原则:配置>< /容器> 1 2 3 4 5 6 / /配置/包/ doctrine.php美元容器- >loadFromExtension (“原则”,(“dbal”= > [“密码”= >' % env (DATABASE_PASSWORD) %]]); 实际值将在运行时解析:容器编译和缓存预热不需要解密密钥。 秘密:列表。如果你有解密密钥你也可以揭示的秘密传递的值——揭示选择: 1 2 3 4 5 6 7 美元php bin /控制台的秘密:列表——显示- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -的名字价值当地价值- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DATABASE_PASSWORD“我的秘密”- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 美元php bin /控制台的秘密:删除DATABASE_PASSWORD