そのため、ソース ベースには htdigest で保護されたフォルダーがいくつかあります。
独自のカスタム php ハンドラを介して無効なログインをログに記録したいと考えています。
私はApacheのErrorDocumentディレクティブを介してこれを行うことを望んでいました.
私の質問は2段階だと思います。
a)phpスクリプトでApache ErrorDocumentディレクティブを指すことは有効ですか、それはphpスクリプトとして解析されます(phpが上記のhttpdに対して稼働していると仮定します)。
b) http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.htmlの http ステータス コード リストをざっと見てみました。
10.4.2 401 無許可
リクエストにはユーザー認証が必要です。応答には、要求されたリソースに適用可能なチャレンジを含む WWW-Authenticate ヘッダー フィールド (セクション 14.47) を含める必要があります。クライアントは、適切な Authorization ヘッダー フィールド (セクション 14.8) を使用してリクエストを繰り返すことができます。リクエストに承認資格情報がすでに含まれている場合、401 応答は、それらの資格情報に対する承認が拒否されたことを示します。401 応答に前の応答と同じチャレンジが含まれており、ユーザー エージェントが少なくとも 1 回認証を試みている場合、応答で指定されたエンティティをユーザーに提示する必要があります。そのエンティティには関連する診断情報が含まれている可能性があるためです。HTTP アクセス認証については、「HTTP 認証: 基本およびダイジェスト アクセス認証」[43] で説明されています。
これにより、ブラウザベースのユーザーエージェントからのフロープロセスは次のようになります。
a) user hits protected url
b) apache responds with a 401 status code
c) user is presented by useragent with username + password prompt
ページに認証が必要であることを (まだ) 知らないヒットではなく、無効なログインのみをログに記録したいのです。
基本的に、ここで少しコピー ペーストを行いますが、必要なのは、次のカスタムの php ベースの置換です。
Authorization Required
This server could not verify that you are authorized to access the document requested. Either you supplied the wrong credentials (e.g., bad password), or your browser doesn't understand how to supply the credentials required.
やりたくないこと:
a) この場合、完全な php ベースのログイン システムを使用する必要があると言われます。これはすでに行われており、認証は 2 層になっています。ユーザーは、Web ベースのログイン (セッションベース) を介してサービスにログインする必要があります。認証の第 2 層は、http ベースの認証です。
b) 完全にカスタマイズされた PHP ベースの http 認証ハンドラーをセットアップするように指示されます。はい、これが可能であり、非常に簡単であることは知っていますが、実際の htdigest の処理は Apache の手に委ねたいと思います。しかし、http 認証処理を apache の手に委ねることができない場合、これは私たちがしなければならないことになります。
要約すると、無効なhtdigestログインでphpベースのスクリプトをApacheに解析させることは可能ですか(ただし、不足していません)、そのスクリプト内でアクションを実行できます(ログ、IPブロックなど...)?