新規で立ち上げたホームページのサーチコンソールでエラーが出ているとのメッセージが。

カバレッジhttps://www.example.com/で問題が検出されました
サーバーエラー(5xx)
なぜサーバーエラー?
思い当たることがなくSearch Consoleの画面を確認すると。。。

下段にある例を見てみると、アップロードしているPDFファイルが一覧に表示されています。
PDFがエラーの原因のようでした。
実際のページを確認してみると

501 Not Implemented
アクセスしようとしたページは表示できませんでした。
対応していないメソッド(MOVE/COPYなど)を使用した。
501エラーの原因を特定する
エラーは、XserverのWAF設定はいつくかある中の一つが原因のようでした。
でもこのエラーのためにWAFを全てOFFにするのはもったいないというか。できればWAFは有効な状況にしておきたいところ。
なのでWAFのどの設定で引っかかっているのかを調べることにしました。
エラーの原因のファイルはPDFです。PDFファイルの内容は業務のお知らせ的なテキストをWordで打ったものをPDFにした、ごく普通のPDFファイルです。
なのでPDFファイル自体に問題があるとは考えにくいです。

エックスサーバーのWAFの設定項目は
- XSS対策
- SQL対策
- ファイル対策
- メール対策
- コマンド対策
- PHP対策
の6つですが、今回の場合、疑われるのは「XSS対策」か「コマンド対策」かなとアタリをつけ、一つずつOFFにしてエラーが解消されるかどうかを確認してみました。
WAFの設定を変更しても変更が反映されるまでに1時間程度かかるようです。
WAF設定を一つずつOFFにして問題が解決するかどうか、確認したところ、当たりをつけた「XSS対策」「コマンド対策」どちらでも解決しないことが判明。
次に該当しそうなWAF「ファイル対策」をOFFにしてみました。
すると、エラーが表示されなくなりました。
原因はWAFの「ファイル対策」だったのです。
何故ファイル対策で引っかかったのだろうと考えてみると、PDFファイルをアップしていたディレクトリ名を「etc」としていたのです。
なのでこのetcディレクトリ内にアップロードしたファイルは画像であれ、なんであれ501エラーとなってしまうことがわかりました。
考えてみたらLinuxではルート直下にetcというディレクトリがあり、hostsファイルのような設定ファイルが置かれるところです。
このような理由でWAF上エラーとなってしまったと考えれられます。
今回、etcというディレクトリ名を別の名前に変更。そうしてPDFファイルもエラーにならず表示されるようになりました。
サーバーのWAF設定はWebアプリケーションの脆弱性対策としても有効にしておきたいですが、意図せず設定に引っかかってしまうのが難しいところですね。
Xserver WAF設定
https://www.xserver.ne.jp/manual/man_server_waf.php
サイトが保存できない、更新されない原因がWAFかも!?という時の解決方法を解説しています
-
サイトの保存ができない、更新されないのはWAFが原因かも
WordPressやホームページでコンテンツの更新を行ったにもかかわらず、いくらブラウザの更新ボタンを押しても、キャッシュクリアをしても変更内容が反映されないことに困ってませんか? その原因の一つとし ...
続きを見る