Experiment log
Welcartで商品価格を変更したら403。原因はWAFだった

Welcartの商品価格を変更して「更新」を押したところ、突然403エラーになった。
サイト自体は普通に表示できる。
WordPressの管理画面にもログインできる。
でも商品を保存すると403。
こういう現象は少し焦る。
まず疑ったのはWAF
403なので、サーバー側でアクセスを拒否されている可能性が高い。
使用しているサーバーはheteml。
管理画面からWAFのログを確認してみると、ちょうど商品を保存した時間にブロックログが記録されていた。
さらにアクセス元IPも自分のもの。
つまり、
Welcartの商品更新時に送信されるデータをWAFが攻撃と誤判定していた。
ということになる。
WAFは正常に働いているだけ
ここで重要なのは、
「WAFがおかしい」
わけではないこと。
WAFはWordPressから送信されるPOSTデータの内容を見て、SQLインジェクションやクロスサイトスクリプティングなどの攻撃パターンに似たものをブロックする。
ECサイトの商品登録画面では、価格や説明、HTML、オプションなど大量のデータを送信する。
その一部がWAFのルールに引っ掛かることはある。
自分のIPを許可して解決
今回はサーバー側で、自分の固定的に使用しているIPアドレスをWAFの除外対象に設定。
その後、同じ商品を編集して保存。
正常に更新できた。
原因切り分けとしても、
WAFログの時刻と自分の操作時刻を比べる
のはかなり有効だった。
WAFを丸ごとOFFにはしない
403が出ると、ついWAF自体をOFFにしたくなる。
ただ、WordPress、特にECサイトでWAFを完全停止するのはできれば避けたい。
可能なら、
- ログを確認
- 自分のIPだけ許可
- 必要なルールだけ除外
といった対応の方が安全。
WordPress管理画面で突然403が出たら、プラグインだけでなくレンタルサーバーのWAFログも確認してみるといい。