Webフォルダーにsettings.phpがあるのはなぜですか?


8

デフォルトのインストールでは、settings.phpはにありますsites/default/。Drupalの公式Webサイトには、このファイルの場所の変更に関する推奨事項はありません。それはセキュリティの潜在的な問題を引き起こしませんか?Apache Webサーバーが最終的に PHPファイルの解釈失敗し、想定されるHTMLコンテンツではなく、純粋なプレーン/テキスト形式でPHPファイルのコンテンツを提供するのを見てきました。これにより、暗号化されていないデータベース接続ユーザーとパスワードが完全に公開されます。なぜこのように機能するのですか?

回答:


6

あなたは絶対的に正しいです。多くの開発者/システム管理者は、PHPインタープリターがどこかの時点で失敗するリスクを負わず、Webサーバーのdocrootの外部にあるファイルからdbパスワード(およびAPIキーなどの他の機密データ)を含めることを知っています。

これがベストプラクティスとして文書化されていないことに驚いています-少なくとも、drupal.orgでも見つかりませんでした。なぜそれがそのように機能するのか、私には情報がありません。


6
コア/著名な開発者の間で、機密データをWebルートから移動することについて反対した議論があったことを覚えています。その時はかなり恐ろしかったのを覚えています。メモリが適切に機能する場合、この議論はDrupalが共有ホスティングですぐに動作する必要があることに関連していると私は思います。私はその議論を見つけることができるかどうかを確認します
クライヴ

1
@Cliveに感謝します。私は答えに推測を加えたくありませんでしたが、あなたが言うように、あらゆる種類の環境ですぐに使えるという要件は、docroot内にsettings.phpを置く最も可能性の高い理由のようです。
marcvangend

はい、@ marcvangend、これは私が自分で考えたものですが、インストール中にサーバーレベルで適切な書き込み/所有者のアクセス許可があるかどうかを確認する自動手順を使用できる場合があります。その場合、追加のセキュリティを提供します。標準化され制御された方法で(コア手法を使用して)。
Cesar

0

一部のプロバイダーでは、この機密接続文字列はWebルート(つまり、getpantheon.com)の外部に保存されます。/sites/defaultフォルダーに直接保存する代わりに、常にいくつかのシンボリックリンクを作成できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.