Web サイトを完成させようとしているのですが、データベースのログインとパスワードを保護する方法がわかりません。これらを php.ini ファイル内で PHP 変数を介して宣言しても問題ないでしょうか? もっと適切な方法はありますか?また、すべてのドキュメントが を使用して記述されるようになりlocalhost , root , ""
ました。これらの変数の値のみを切り替えたいのですが、安全を確保するためにこれらを宣言する場所がわかりません。回答ありがとうございます。
3 に答える
@Cthulhu が説明するアプローチは一般的に適用され、CakePHP や Symfony などのフレームワークにも適用されます。
構成を webroot の .php ファイルに保存している場合でも、それ自体がすぐにセキュリティ ホールになるわけではありません。Web サーバーが正しく構成されている場合、常に PHP を使用してそのファイルを解析し、作成された出力を送信します。 PHPによって。
とにかく、サーバー全体を保護する方がよいでしょう。まだ行っていない場合は、データベースが外部からの接続を受け入れないようにすることから始めるのがよいでしょう。他のプロトコル (ftp など) から Webroot を保護することは、次のステップです。最後に、許可されていない人がサーバーにログインするのを防ぐことは必須です (ローカルでデータベースに接続できる場所)。
.htaccess で環境変数を使用することは、パスワードを安全に保存する別の方法です。
SetEnv MYSQL_DATABASE_HOSTNAME ホスト名
SetEnv MYSQL_DATABASE_USERNAME ユーザー名
SetEnv MYSQL_DATABASE_PASSWORD パスワード
任意の暗号化および復号化方法でパスワードを保存することをお勧めします。
を含む単一のphpを作成できます
$username = ..
$password = ..
$db_host = ..
等
次に、include_once('database_config.php')
使用したい場所に含めます。必要に応じて、後で簡単に変更できます。
このファイルは、Web サイトの HTML ルートの外.htaccess
に保管するか、ルールを使用してさらに保護することができます