2009-03-03 9 views
2

私は、MagentoがMySQL接続の詳細をdocrootの上で保護されていないXMLファイルに保存していることに気付きました。これは....かなり危険です。サイトルートのPHPサイトのXMLファイルに設定変数を格納するのが危険ですか?

XMLは、設定データを保存する便利な方法のようですが、1つのことを除いて、http://www.domain.com.au/library/config.xmlを入力するとあなたの個人情報が表示されます!

XMlファイルを使用してこれを.htaccessファイルに追加しました。

<Files ~ "\.xml$"> // 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の便利さ(更新が容易で、悩まされたくないデザイナーは怖い気がしません)が潜在的な問題(プライベートデータを公開する)よりも重要ですか?

答えて

1

私は個人的に直接アクセス可能な形式や場所にない形式で設定ファイル情報を保存したいと思います。ですから、私はdocrootの上にXML形式を使用するか、PHP $ config ['varname'] = 'value'形式を使用します。後者のメソッドは、直接呼び出された場合は空の白いページをレンダリングします(すべてのPHPとHTMLを含まず、エコーアウトしない限り)。

ギャラリー、vBulletin、およびJoomlaはすべて私が言及した第2の方法を使用します。これまで私が他のPHP関連の質問でこれらのプロジェクトについて言及したことは知っていますが、プロジェクト間で広く使用され受け入れられている方法のようです。

+0

しかし、Wordpressはdefine()を使います。 – alex

+0

これは、人々がWebルートからディレクトリにアクセスできない可能性があるためです。 PHPフレームワークを見ると、configファイルやアプリケーションロジックをWebルートの外に保存することをお勧めします。 –

+0

私はちょうど私のJoomlaのconfiguration.phpファイル(2007年)を見て、クラスを持っているConfig – alex

0

短答、いいえではありません。しかし、より良い質問があります。設定ファイルに保存されていない場合は、どこに保管しますか?

+0

内部にconfig.phpのようなものスクリプトブロックはパーサに強制的に表示させません。まあ、少なくともPHPモジュールが失敗するまで。 – alex

+0

あなたのWebサーバのDocRootの外にconfigsを置いておけばいいと思います。 –

0

私は完全にこの上inventixに同意するだけでなく、サーバとして

.htanything.whatever設定情報

を格納したファイル広いすべてのファイルのいずれか

名と組み合わせる必要が3番目のオプションを提供.htを外部ユーザーが読むことができません {htaccessは常に.htaccessです}

私は設定ファイルとドキュメントライブラリドキュメントのルート内にあるソフトウェアを使用している人が$ includesfolderをドキュメントツリー内で移動させなければならない場合には、それらの.htnaming規則を常に使用することを理解してください。

関連する問題