「THE THOR」のカスタマイズでエラー(403エラー)が発生することを記事にしました。
当該記事にもあります通り、wp_optionsテーブルを直接編集してひとまずは対応したのですがやはりエラーが出ているのは気持ちのいいものではないのでいろいろと調査をしました。
その結果、幸いにも原因が判明しましたので記事に残しておきます。
原因はWAF
結論から言いますと、原因はWAFでした。
レンタルサーバーだと標準で備わっていることが多いようで、デフォルトで有効になっている場合もあるようです。
試しにWAFを使わないようにしたらエラーが発生することなくカスタマイズすることができました。
WAFとは
Web Application Firewallの略です。
簡単に言うと、Webアプリケーションの脆弱性や実装の仕様を悪用した攻撃からWebアプリケーションを保護する仕組みです。
Webアプリケーションの前にいて、怪しげなリクエストはWebアプリケーションに渡さずに弾く感じになります。
本当はWebアプリケーションを修正するのが一番いい思います。
でもいろいろと事情があってそれができない場合もありますので、そういう場面においてWAFは有効なのではないでしょうか。
誤検知する可能性があり、今回のように意図せずエラーとなってしまうことがあるとはいえ、何もしないでいるよりはきっといいと思います。
WAFのログを確認
私が使っているレンタルサーバーの場合、サーバーの管理画面からWAFのログを確認することができます。
下の画像のようにたくさんの攻撃検知ログが出力されていました。
もっと早くWAFの存在に気が付いていたらテーブルを直接編集するとかしなくても済んだのに…。
自らのスキル不足を痛感しました。
まとめ
今回は特におかしなことをしたわけではなく正常な処理でしたが、WAFに弾かれてしまいました。
恐らく、同じような感じで脆弱性を突かれたWebアプリケーションがあったのでWAFに危険な攻撃パターンとして登録されていたのだと思います。
今後、同様のエラーが発生したときはWAFのログを確認して適宜無効にすることで対応しようと思います。
WAFのログを見るとたまにではありますが怪しげなアクセスがあるので常時無効にしておくのはなにか怖いものがあります。
最新のアップデートはきちんと適用されるようになっているので大丈夫だとは思うのですが、対策しておいて損はないですからね。
コメント