理解できないhttpd.conf
ディレクティブに出くわしました。
<Files ~ "^\.ht">
Order allow,deny
Deny from all
Satisfy All
</Files>
doc によると、Satisfy
がないため、Allow
は効果がないと言えます。私が間違っている?この指令は何をするのだと思いますか?
私はあなたに同意します、すべてを満足させることは何もしていません-それなしでは、これらのファイルはまだ拒否されます。
TLDR;Satisfy All
は通常デフォルトのサーバー設定であるため、ほとんどの場合、この行は厳密には必要ありません。 の場合、この行は厳密には必要ありません。
この行は追加のセキュリティとして追加され、「JustInCase」サーバーはデフォルトとしてSatisfy Any
設定を使用するように構成されました。Satisfy Any
設定を使用してサーバーを意図的に設定した場合は、ファイルを保護するためにSatisfy All
ディレクティブを含めることにより、その設定を上書きすることを間違いなく want .htaccess
など。
Htaccessファイルがサーバーのデフォルトの「Satisfy」ディレクティブを上書きするかどうかはわかりません。
インターネットに投稿された一般的なコードの場合、特に.htaccess
ファイルを適切に保護する方法を説明している場合、投稿者は、サーバー設定について、弱体化する可能性のある仮定を行わない責任があります。ドキュメントのセキュリティ。その「余分な」行を含めると、より安全な設定がhtacessファイルに確実に適用されます。ディレクティブを追加すると、異なる構成のサーバーの小さなセットに対して、htaccessファイルが公開される可能性を失う代わりに、コードブロックが100%動作します。
Apacheドキュメント によると:
Satisfy Any|All
:ホストベースのアクセス制限とパスワードベースの認証の両方を同時に実装できます。その場合、Satisfyディレクティブは、2セットの制限がどのように相互作用するかを決定するために使用されます。
...
<Directory>
、<Files>
、および<Location>
セクションと.htaccess
で使用このディレクティブは、特定の領域へのアクセスがユーザー名/パスワードとクライアントホストアドレスの両方によって制限されている場合にのみ役立ちます。この場合、デフォルトの動作(すべて)では、クライアントがアドレスアクセス制限を通過し、有効なユーザー名とパスワードを入力する必要があります。 Anyオプションを使用すると、ホスト制限に合格するか、有効なユーザー名とパスワードを入力すると、クライアントにアクセスが許可されます。
デフォルト値通常はSatisfy All
(他の唯一のオプションはSatisfy Any
)であるため、そのディレクティブを含めても違いに気付かない場合があります。ただし、サーバー構成ファイル(または?親ディレクトリの.htaccessファイル??-これが可能かどうかわからない)は、サーバーのデフォルトを上書きする可能性があります。いずれにせよ、Satisfy All
ディレクティブを追加すると、適切なセキュリティ対策が一貫して適用されます。
Satisfy All
ディレクティブを含めることにより、サーバー構成の設定に関係なく、これらのファイルのより高いセキュリティ設定を保証します。
ドキュメントへのリンクは、代わりにSatisfy Any
を使用したい場合のいくつかの使用例について言及しています。
コメントできないので、@ SherylHohmanの回答が最良の回答であることをここに追加します。これは、セキュリティを強化するためにが重要であるためです。したがって、stillが残りの部分を説明する必要があるため、(受け入れられた回答とは対照的に)それなしでは効果がないと言うことは技術的に正しくありませんサーバー構成の。ただし、@ SherylHohmanの回答に追加したいと思います。
サーバー構成ファイル(例:/etc/httpd/conf/httpd.conf
)には、より一般化されたSatisfy Any
ステートメントを含めることができます。たとえば、誰かがサーバー上のすべてのサイトにアクセスするためにユーザー名/パスワードを要求し(Require group [name
経由など)、特定のIPまたはIPのセットからAllow from [ip]
経由でバイパスを許可する可能性があるため、これは重要です。アウトでは、.htaccess
を宣言する必要があるため、Satisfy Any
が開かれます。
ディレクトリ以上特定の.htaccess
ファイルは影響を与えませんそれらが<Files>
に特に一致する.htaccess
セクションである場合を除きます。このルールは、必要なAllowOverride
ディレクティブ(例:Limit
またはAll
)も含むサーバー構成とともに使用されます。これはサーバー構成で使用されるものであり、<File>
レベル(つまり、ルートレベル<Directory>
)の後に処理されるため、.htaccess
である必要があると言います。これは <File>
セクションが後でマージされる であり、.htaccess
は当然サーバー構成の後に処理されるように見えます。