WordPressの操作で、サーバーエラーが出たらWAFが原因?
WordPressトラブル解決サポートにご相談をいただきました。
WordPressを操作していたら、501エラーという見慣れないエラー画面が表示され、画面も表示されず、管理画面にもログインができなくなってしまった。
というもの。早速調査を開始しました。
原因はWAFの保護機能
このような、WordPressのエラーではないサーバーエラーが表示される場合、大抵はWordPress自身に問題がある訳ではなく、サーバー側で問題が発生していることが多いです。(WordPressに問題がある場合は、PHP等のエラーが表示されます)
そして、サーバー側で発生するエラーとして考えられるものとしては、次のようなものがあります。
- .htaccessの設定不備
- 必要なファイルやフォルダを削除してしまった
- WAFによる保護
今回のケースは、最後のWAFによる保護機能の発動でした。
WAFとは
WAFとは「Web Application Firewall」の略称で、Web上のさまざまな攻撃を防ぐために導入する「ファイアーウォール」と呼ばれる安全対策機能です。近年のレンタルサーバーに多く標準搭載されていて、また標準で「ON」になっています。
これによって、さまざまな攻撃から保護してくれるのですが、まれにWordPressのプラグインの機能だったり、操作などによってWAFが「誤作動」をしてしまって、保護機能が発動してしまうことがあります。
これが発動すると、操作を受け付けないばかりかログインができなくなってしまったり、画面自体が正しく表示されなくなってしまいます。
対策は例外対応をするか、一時的なOFF
こうなってしまった場合、対策として次の2つが考えられます。
例外対応
WAFが発動すると、具体的にどのような攻撃によってWAFが発動したかのログが残る場合があります。そこには、WAF特有の番号が割り振られているため、この番号を使って「この操作は許可する」といった例外の対応することができます。
WordPressの場合、「SiteGuard」というプラグインを利用する事で、このWAFの例外対応をすることができます。
「SiteGuard→WAFチューニングサポート」メニューで有効にし、番号を登録すると、それが例外として処理され、正しく操作ができるようになります。

一時的にOFF
WAFの機能は、レンタルサーバーの管理画面等でON/OFFを切り替えることができます。これを使って、一時的に機能をOFFにします。
これによって、できなかった作業ができるようになります。とはいえ、そのままずっと運用するのは危険なので、作業が終わったら「ON」の状態に戻しておくと良いでしょう。
管理画面などにもログインできなくなってしまって、慌ててしまいますが、しっかり対処をすればそれほど難しい問題ではありませんので、落ち着いて対処しましょう。困った場合は、いつでもご相談いただけると幸いです。