Contact Form 7で403エラー

メールフォーム定番プラグインのContact Form 7で新規フォームの作成や既存データの編集を行おうとすると403エラーが発生する現象に見舞われました。
はじめに気がついたのはヘテムルでしたが、ロリポップなど、他のレンタルサーバでも見受けられるようです。
どうやらこれはサーバ側で順次導入が進んでいるWAFの影響のようです。

WAFとその弊害

WAFはウェブアプリケーションファイアウォールの略で外部ネットワークからのWebアプリケーションへの不正侵入を防御するもので、アプリケーションのレベルで管理が行えることが特徴です。
要するにContact Form 7の編集行為がWAFにより不正アクセスと見なされてしまったということです。
場合によってはWordPressでのダッシュボード(管理画面)上での他の動作でも引っかかることがあるようです。

もちろん、WAFを使わなければ、この403エラーは回避できます。
それでは無効にしてしまえばよいのでしょうか?

対処方法

WordPressではサイト改ざんや乗っ取りは本当に後を絶ちません。
日本国内に限定しても、ひとつの通信業者内で1日に8,000件以上の改ざんが確認された例もあります。
セキュリティ強化のためにせっかくサーバ側で用意したWAFを安易に切ってしまうというのはおすすめできません。

一時的にWAFを無効にする

わたしの場合はContact Form 7のフォーム編集という一時的な作業であったこと、また、管理画面をIP制限していることから、保存時のみ、WAF設定をオフにして対処するという方法をとりました。
多くのレンタルサーバでWAFの設定はコントロールパネル上で行えます。

ヘテムルでのWAF有効/無効の切り替え

ヘテムルでのWAF有効/無効の切り替え

例外処理を設定する

ヘテムルではWAF導入後、このような事例が頻発しているようで、下記のようにトラブルシューティングが公開されています。
こちらにはhtaccessで特定操作の除外記述の方法が書かれています。

WAF設定により403エラーが表示される場合に関しまして

大きな声でおすすめはしませんが、管理画面へのアクセスをIP制限すれば、正直なところWAFを使わなくともかなりリスクは下がるとは思います。
また、htaccessの設定が難しい場合には、ダッシュボードへのアクセスをSSLで行い、その際のみWAFを無効にするというこちらの記事も参考になるかもしれません。
もっとも、SSL化の方が敷居は高いような気もしないでもないですが。

ロリポップ上のWordPressをWAFで防御する方法

フォローする

WordPressとはなにかもう一度おさらいしてみよう!

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


四 × = 8

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">