哪个是存储在symfony中的服务中使用的加密参数的最佳方法?

问题描述 投票:3回答:1

我现在将秘密存储在parameters.yml中,这是一个纯文本。

我想保留一些参数和环境变量作为秘密,所以只有我自己和Symfony知道数据库的凭据。

有没有办法在Symfony 3.2中保护我的秘密,环境变量和参数?

我能举个例子吗?

谢谢。

php symfony
1个回答
2
投票

是的,您可以通过两种不同的方法解决它:

Build a compiler pass that decrypt the parameters

http://symfony.com/doc/current/service_container/compiler_passes.html

选择合适的加密/解密算法:https://paragonie.com/blog/2015/11/choosing-right-cryptography-library-for-your-php-project-guide

你的编译通过

class DecryptParameterPass implements CompilerPassInterface
{
    public function process(ContainerBuilder $container)
    {
        if ($container->hasParameter('you_paramater_enc') && (!$container->hasParameter('you_paramater') or !!$container->getParameter('you_paramater'))) {
            $container->setParameter('you_paramater', your_decrypt_method($container->getParameter('you_paramater_enc')));
        }
    }
}

你的捆绑

class AppBundle extends Bundle
{
    public function build(ContainerBuilder $container)
    {
        $container->addCompilerPass(new DecryptParameterPass());
    }
} 

You can use complex expressions to call a service that decrypts the parameters

https://symfony.com/doc/current/service_container/expression_language.html

© www.soinside.com 2019 - 2024. All rights reserved.