web-dev-qa-db-ja.com

アクセスが禁止されている場合、サーバーは403ではなく404を返します-それは良いですか、それとも悪いですか?

.htaccessを使用して、内部にインデックスページのないフォルダー(domain.com/imagesなど)へのアクセスを禁止し、いくつかのユーザーエージェント(wgetなど)に対してサイトを完全にブロックします。

これらの機会のそれぞれで私のウェブサイトにアクセスするときにこれらの種類のユーザーが見るものを見るためにテストするとき、表示されるエラーメッセージは次のようなものです:

「禁じられた

このサーバーの/ images /にアクセスする権限がありません。

さらに、ErrorDocumentを使用してリクエストを処理しようとしたときに404 Not Foundエラーが発生しました。」

タイトルは403エラーですが、サーバーログでは、サーバーが404エラーを返していることがわかります。

だから-これは「良い」か「悪い」か?上記のメッセージの意味は何ですか?

1
getbuck

禁じられているエラードキュメントを403ではなく404でセットアップしているようです。ただし、.htaccessセットアップを表示しない限り、サポートするのは困難です。

403の代わりに404を返すことに関して、私はそれをたくさんします。これは、特定のページまたはディレクトリが存在するという事実を漏らさない方法です。管理者だけがアクセスできる「シークレット」パスがあるとしましょう。サイトを管理できるごく少数の人を除いて誰も403を必要としません。

ただし、あなたの場合、それはあまり良い考えではないかもしれません。しかし、真実は、禁止されていない場合は/imagesです。デフォルトのindex.htmlがないため、ルートディレクトリが禁止されている場合は(少なくとも私のロジックでは)/images/eiffel-tower.jpgなどのパスも禁止されるため、404を返す方がよいでしょう。

1
Alexis Wilke

403 Forbiddenエラーは、意図したとおりにアクセス拒否の問題が原因です。ここには問題はありません-それは問題ないようです。

404ページが見つからないというエラーは、。htaccessファイルが探している場所が見つからず、この状況で表示される何らかのカスタマイズされたエラーページが原因です。ホスティングプロバイダーが、これを管理下に置くのではなく、サーバーレベルで構成している可能性があります。ログファイルには、エラーと一緒に検索しようとしているファイルが実際に表示されます。

ErrorDocument。htaccessファイルで指定されていなかった場合、Apacheは単にデフォルトの基本エラーページを使用していましたが、指定されているため、必ず適切なファイル。これにより、次のことが保証されます。

  • (a)ユーザーは、あなたのウェブサーバー/ウェブサイトが悪用される可能性のある他の設定ミスの問題を持っているとは思わない;そして

  • (b)403エラーごとに追加の404エラーでログファイルが肥大化することはありません(使用可能なディスクスペースを制限するクォータ制限がある場合、ホストされたディスクスペースのメガバイトごとに支払う場合、これは特に高く評価されます。または、ログが時間制限サイクルで動作する場合、たとえば、最後の72時間分のログエントリのみを保存し、新しいエントリが追加されると古いログエントリを削除します)。

ErrorDocument設定でエラーファイルとして/403.htmlを使用する必要があるが、たとえば/errors/access-denied.phpを使用したい場合は、.htaccessファイルでこれを管理します。

1
richhallstoke

サーバーは、指定したエラードキュメントを見つけることができないと思います。

さらに問題がない場合は、ヘッダーチェッカーを使用してヘッダーをチェックします。

0