サイトルートの下にあるPHPサイトのXMLファイルに構成変数を保存するのは危険すぎますか?
質問
MagentoがMySQL接続の詳細をdocrootの上で保護されていないXMLファイルに保存していることに気付きました。これは....とても危険なようです。
XMLは、 http://www.domain.com.au/library/config.xml は、個人の詳細を世界に表示します!
先に進んでXMlファイルを使用し、これを.htaccessファイルに追加しました。
<Files ~ "\.xml<*>quot;> // regex files that end with xml extension
Order allow,deny
Deny from all // don't show them
</Files>
今、私はこれに満足しました 、今はあまりよくわかりません。 .htaccessファイルが誤って削除/破損された場合(人為的エラー以外に発生します)、ある日、アプリを非Apacheサーバーに配置したい場合...すべてのサーバーがXMLファイルをブロックする同等の機能を備えている場合、その場合、.htaccessのようなフォルダーレベルで変更できます(httpd.confファイルだけでなく)。
私の質問は... XMLの利便性(更新が簡単で、いじくり回す必要のある設計者はそれほど恐れることはない)は、潜在的な問題(プライベートデータの公開)よりも重要ですか?
解決
個人的には、直接アクセス可能な形式や場所ではない形式で構成ファイル情報のみを保存します。そのため、docrootの上のXML形式を使用するか、PHP $ config ['varname'] = 'value'形式を使用します。後者のメソッドは、直接呼び出されると空白の白いページをレンダリングします(すべてPHPであり、HTMLを含まず、エコーアウトしない限り)。
Gallery、vBulletin、およびJoomlaはすべて、前述の2番目の方法を使用します。他のPHP関連の質問でこれらのプロジェクトについて言及したことがありますが、プロジェクト間で広く使用され受け入れられている方法のようです。
他のヒント
簡単な答え、いいえ。しかし、より良い質問があります。設定ファイルに保存されていない場合、どこに保存しますか?
この点についてはinventixに完全に同意しますが、いずれかと組み合わせる必要がある3番目のオプションも提供しています
構成情報を保存するファイルの名前
.htanything.whatever
サーバー全体として、.htで始まるすべてのファイルは外部ユーザーが読み取れない {これが、htaccessが常に.htaccessである理由です
personalyは、ドキュメントルート以外の設定ファイルインクルードと関数ライブラリのみを保存しますが、一部のconnotは、使用する誰かによって$ includesfolderをドキュメントツリー内で移動する必要がある場合にも、常に.htnaming規則を使用することを理解しますそのようなサーバー上のソフトウェア