在Laravel Framework中删除硬编码的Mysql凭据

时间:2018-01-22 05:54:14

标签: php security laravel-5 credentials

很抱歉,如果我的问题很愚蠢,但我无法找到任何帮助。我收到了一份Laravel 5应用程序测试报告,建议从app/config/database.php中删除硬编码凭据。但是我还能在哪里保存数据库凭据以及如何保存?

2 个答案:

答案 0 :(得分:1)

laravel项目根目录中有一个.env文件。你应该在那里添加凭证。

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=
DB_USERNAME=
DB_PASSWORD=

并在database.php -

        'driver' => 'mysql',
        'host' => env('DB_HOST', '127.0.0.1'),
        'port' => env('DB_PORT', '3306'),
        'database' => env('DB_DATABASE', 'forge'),
        'username' => env('DB_USERNAME', 'forge'),
        'password' => env('DB_PASSWORD', ''),

为了更好地理解,请阅读Laravel官方doc

答案 1 :(得分:0)

您可以在环境(.env)文件中存储这些类型的信息。

此文件存在于项目根目录中,如果该文件不存在,您可以手动创建它或制作.env.example文件的副本(如果存在)。

示例数据存储:

//.env file
DB_NAME="project_db"

并在laravel项目的任何其他文件中使用此变量:

ENV('DB_NAME') //returns "project_db"

这很简单。 注意.env文件取决于当前使用的环境项目,可能必须在不同的环境中进行更改。通常.env文件不存储在存储库中,也不会部署到整个项目的新环境中。