How do I secure my database connection credentials?
この質問が何度も出題され、回答されていることは知っています (例: How to secure database passwords in PHP? )。
この質問に対する一般的な回答は、Web ルートの外部に詳細を保存することです。しかし、なぜこれが実際に大きな違いを生むのか、私は興味があります。
私が理解していることから、HTTP 経由で PHP ファイルのソースをダウンロードすることはできません (Web サーバーが適切に構成されていない場合を除きますが、そのことはすぐにわかります)。とにかくPHPファイルのソースにアクセスできない限り、資格情報を見ることはできません。私が間違っている場合は訂正してください。しかし、これは基本的に、シェル アクセスが必要になるということではないでしょうか? また、シェル アクセス権がある場合は、Web ルートの外部にあるファイルにアクセスすることはできませんか?
その質問に対する答えが、インクルード ファイルには、Web サーバー ユーザー以外の誰もそれを読み取ることを許可しない特別なアクセス許可がある可能性があるということである場合、(私がシェル アクセス権を持っていることを考えると)、単に書き込み (または変更) することはできませんでした。それらの資格情報をエコーアウトするPHPファイルはありますか?
問題は、資格情報を PHP スクリプトに直接保存するか、Web ルートの外部のファイルに保存するかで、実際に違いがあるのでしょうか?