sitewide暗号鍵とDBアクセス情報をdocument_rootに格納するのが好きではないので、私はApacheのSetEnvとphp.iniファイルをconf.dの下でコードベースから分離していました。大きな疑問は、どちらが優れているかです。 apache vhostファイル(SetEnv SITEKEY 'oinkoink!'
)またはconf.d/xxx.iniファイル(db_pass="oink?"
)の下にある環境変数の中に?多分何か?SetEnvまたはphp.iniでDB変数をどのくらい安全に保存していますか?
PROS N CONS:
するSetEnv:
+ DOCUMENT_ROOT外部に格納され
+のみ与えられたバーチャルホストをするphpinfo()と - 可視アクセス
持っています - ダイレクトアクセス/アップロードファイル
に活用する必要がハッカーを
get_cfg_var:
+ DOCUMENT_ROOT
外部に格納されていますはのphpinfo()で+は表示されません
は - (VERY BAD)すべての定義されたINI変数が含まれているので、各バーチャルホストは(ini_get_all)を介して、それらを検索することができ、共有のバーチャルホスト環境ではそれほど使用できません
"誰かが任意のPHPコードを実行する権利を得た場合..." - このようなことが起きた場合、賭けはすべてオフになり、db credをどこに格納しても完全にpwnされます。 – Asaph