MySQL PHP Apache の構成でWebアプリを作っています。
パーフェクトPHPの本にあった独自のフレームワークを使用しているのですが、
アプリケーション起動時にMySQLのパスワード等各種設定を以下の様にしてありました。
php
1 $this->db_manager->connect('master', array( 2 'dsn' => 'mysql:dbname=my_db;host=localhost', 3 'user' => 'root', 4 'password' => 'mypassword', 5 ));
上記の様にcode内に直接パスワードをが記載されると誤って公開Git等に上がると危険である事、
また、環境毎に設定の変更が必要な為、このように改修してみました。
php
1 $this->db_manager->connect('master', array( 2 'dsn' => $_SERVER['SQL_DNS'], 3 'user' => $_SERVER['SQL_USER'], 4 'password' => $_SERVER['SQL_PASS'], 5 ));```
つまり http.conf の環境変数に MySQLのパスワード等を設定したのですが、これはセキュリティ上危険でしょうか?
一応、ソースコード内に phpinfo() 等が入らない様にして、環境変数が漏れないよう管理はしておりますが、このほかに良い方法があれば、教えてくださると助かります。
一応、自分では
php
1require "../../secret.php";
という様に非公開フォルダにパスワードだけ変数指定したファイルを読み込ませる、等も過去行ったのですが、フレームワーク自体の使い方が甘く、至る所で require が必要になってしまい辞めた経験があります。
またrequireをするにも、公開ファイル内に記載し、 .gitignore を使って該当ファイルのみは別で管理するという方法もありそうですが、管理している存在自体を忘れそうでこれも採用しませんでした。
つきましては一般的なcode内のパスワード管理方法について教えてくだされば幸いです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/12/21 09:03