Laravel 4.2填充$_ENV
和$_SERVER
,Laravel 5.1使用DotEnv填充$_ENV
。
我实际上正在开发一个非laravel项目,并使用laravel配置包通过composer重构现有应用程序。目前,我们有多个文件存在于高于项目根目录的文件夹中,用于存储敏感信息(因此没有任何内容存储在git中)。所以需要这些敏感键的方法目前看起来像这样:
processStripeCharge(){
$keys = include '../../keys/stripe.php';
.... }
我想替换为:
processStripeCharge(){
$keys = config('stripe');
.... }
和config / stripe.php:
<?php return [
'public' => $_ENV['STRIPE_PUBLIC']
...
];
新方式会不会比以前的方式更安全?(我必须回答这位非常注重安全的经理)
优点:
缺点:(安全性?)
var_dump($_ENV);
乱扔垃圾或phpinfo();
所有秘密都将保留在公开场合,直到现在还不是这样。var_dump($keys)
,他们需要更多工作。 我个人认为,如果黑客能够访问服务器,我们无论如何都会遇到大麻烦,而且无论如何都可以使用当前系统获取密钥。
如果仅填充$_ENV
而不是$_SERVER
,它会更安全吗?
我想到的妥协就是让config/stripe.php
像这样:
<?php
$keys = include '../../keys/stripe.php';
return [
'public' => $keys['public']
...
];
所以我两个世界都是最好的,$_ENV
没有填充+使用配置文件