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

WordPress(テーマはオリジナル)で新規サイトを制作中、

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

エラー時のファイルとか用意しなくても、.htaccessにコピペで一行書き足すだけなので今後も使えそうだなと思いました。

 

(経緯)

制作中のWPサイトにbasic認証をかけているにも関わらず、プラグインからアタックのアラートがきていました。

サーバーにアップロードしてから認証をかけるまで2~3日空いてしまったので、そのせいだと思ったのですが、

とにもかくにもbasic認証画面を試してみたら、キャンセルを選択しても中身が見えてしまう問題が発覚。

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

 

対処法

.htaccessに下記を追記で解決

ErrorDocument 401 “Unauthorized Access”

これによりbasic認証画面でキャンセルを押されても、

“Unauthorized Access”と表示され、中身が見える事はなくなりました。(つまり””内は文字列ならなんでもいい。)

 

この方法の解説(初心者的理解)

.htaccessにErrorDocument 401 “Unauthorized Access”

実はこれ会社で10秒で教えてもらっただけなので、自分(初心者)用に意味を整理します。

 

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

401は認証のエラー。これはそのまま。

 

ただ、閲覧者が自分で「キャンセル」してるのに、

「見ようとしてるようだけど認証が合わないから見えないよ」っていうことで401エラーの処理にしてるのはなぜ?とは思ったけども…

 

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

 

ErrorDocument ○○

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

 

【htaccess】403・404・500エラーのときに任意で作成したページを表示する

そのものずばりの解説が意外と検索で見つけられなかったので、こちらの記事を参考にさせていただきました。感謝。

この記事の解説は401の話じゃないけど、エラーの時の表示用ファイルを置いてそれを表示させるっていうのが一般的な対処法らしいですね。

 

でも401ってそもそも丁寧に案内してあげる必要ないと思われるし、そのためにファイルを作成するのも手間。

ってことで、ファイルの代わりに文字列で済まそうっていうのが今回の対処法。

 

他の使い道

これ意外と他のエラー対応に応用できるかも…

例えば404とか、デフォルトのはイヤで他の日本語に変えたい。でも特にデザインはいらない場合。(あんまりないかな…このパターン)

.htaccessに

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

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

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

コメント