その他Web制作

Basic認証の入力画面でキャンセルするとそのまま中身が見えてしまう問題

この記事は2019年以前他サイトに執筆したものを引越し掲載しています。

Basic認証の入力画面でキャンセルするとそのまま中身が見えてしまう状態の対処法メモ。

エラー時のファイルとか用意しなくても、.htaccessにコピペで一行書き足すだけです。

対処法

.htaccessに下記を追記。

ErrorDocument 401 “Unauthorized Access”

これによりbasic認証画面でキャンセルを押されても、”Unauthorized Access”と表示され中身が見える事はなくなります。(つまり””内は文字列ならなんでもいい。)

この方法の解説

.htaccessにErrorDocument 401 “Unauthorized Access”

意味の整理。

まず401とは…「認証を通ってない」っていうエラー

401は認証のエラー

「見ようとしてるようだけど認証が合わないから見えないよ」的な。

basic認証画面でキャンセルを押されても401エラーになる。

ErrorDocument ○○

ErrorDocument ○○っていうのはこのエラーの時、この後に続くやつを表示してねっていう指示。

以下わかりやすい記事。

上の解説は401の話じゃないですがエラーの時の表示用ファイルを置いてそれを表示させる方法。

401ってそもそも丁寧に案内してあげる必要ないと思われるしそのためにファイルを作成するのも手間。ってことでファイルの代わりに文字列で済まそうっていうのが今回の対処法。

他のエラー対応への応用案

例えば404とか、デフォルトのはイヤで他の日本語に変えたい。でも特にデザインはいらない場合。

.htaccessにErrorDocument 404 “(出したい日本メッセージ)”

これだけで済むので、ファイルを作って.htaccessにそのファイルのパスを書くより早い。

エラーの種類別に、丁寧な案内とか日本語メッセージを出すのもすぐできる。

WordPressではプラグインでこの問題を検出できる

一応今回の経緯を書くと…

制作中のWordPressサイトにbasic認証をかけているにも関わらず、プラグインからアタックのアラートがきていました。サーバーにアップロードしてから認証をかけるまで2~3日空いてしまったのでそのせいだと思ったのですが、とにもかくにもbasic認証画面を試してみたら、キャンセルを選択しても中身が見えてしまう問題が発覚。

これが原因で攻撃されているのかはなぞですが、当然要対応なので上記のように急いで対応。