友人から、彼の会社が使用している PHP アプリケーションを更新するように依頼されました。アプリケーションが DB 構成ファイルに .ini 拡張子を使用していることがわかりました。このファイルには、DB ホスト アドレス、ユーザー名、およびパスワードが含まれています。問題は、Web ブラウザーでファイルにアクセスできることです。
その理由を理解しようとしています。拡張子が .ini の通常の php ファイルを使用する特定の理由はありますか??? 私はそれを理解していません。
Zend_Config_Iniを使用できます。快適で簡単です。単純に、設定ファイルを任意のユーザーがアクセスできる場所 (public_html など) に配置しないでください。
INI ファイルは、構成を処理する 1 つの方法にすぎません。おそらく、開発者は Windows 開発のバックグラウンドから来て、使い慣れたものを何でも使用しました :)。さらに、PHP はparse_ini_file関数を使用して INI ファイルを解析する便利な方法を提供します。
ただし、Web から .INI ファイルにアクセスできないようにする必要があります。これを docroot の下に移動して、PHP スクリプトが引き続きアクセスできるようにしますが、ランダム ブラウザーはアクセスできません。
読みやすさは、私が過去に php スクリプト構成に ini ファイルを使用した主な理由の 1 つです。コーダーではない人でも、少なくとも 1 回は ini ファイルを使用したことがあり、単純な php ファイルよりもはるかに簡単であることを理解できます。
誰でも読める ini ファイルの問題は、サーバー側の設定によって防ぐことができます。ファイルの先頭にあるコメント行内に 1 行のコードを追加するだけで、さらに効果的です。
そうすれば、ファイルがブラウザ経由でアクセスされたときに php は「直接アクセスは禁止されています」を出力し、ini ファイルは以前と同様に機能し続けます。
これは、構成に別のファイルタイプを使用したい元プログラマーの願いのようです。このファイルに他に用途がない場合は、名前を *.php に変更して忘れてください。そうでない場合は、ini を php として解析するように Web サーバーを構成するか、Web サーバーから到達できないディレクトリに移動します。
価値のあることとして、PHP は伝統的に PHP のphp.ini
構成に使用されてきました。だから多分それはある種の遺産ですか?