web関連

contactform7で設定を保存すると403エラーになる件

contactform7で設定を保存すると403エラーになる件

さくら→mixhostにサーバー乗り換えを行ったときにお問い合わせフォームの確認で送信先メールアドレスを変えようと「保存」を押したら403エラーになって焦った時に調べたメモ

原因 + WAFとは

結果的には、WAF(Webアプリケーションファイアウォール)が有効になっていることが原因だった。

WAFとは「Webアプリケーションファイアウォール」の略称でセキリュティー対策で用いられる。
webサイトなどで不正アクセスによるサイトの改ざんや情報漏洩を防ぐ機能だそうです。

WAFを設定することでWordpressの脆弱性への攻撃をブロックすることができるので極力設定はしておいた方がいいです。

サーバーによっては標準が無効化されてたり(さくら)、有効化されてたりで「有効/無効」どっちでもいいよみたいなスタンスとってるから「有効→無効」に切り替えるの抵抗がある。最初から無効にしていてくれれば意識しなくていいのに…

参考

▼WAF(ワフ)とは何か
https://jpn.nec.com/infocage/siteshell/waf.html

WAFは必要か?

基本的にWAFは設定をしておいた方がいいけどプラグインによっては403エラーがでたりする。

レンタルサーバーによっては.htaccessなんかでプラグインごとにWAFを解除なんかできたりする。
(ファーストサーバーの「zenlogic」なんかがそうだった気がする)

wordpressだったら「SiteGuard WP Plugin」を使えば、WAFのエラーログからシグネチャを確認して個々に無効化の設定ができたりする。
以下のサイトが参考になるかも

参考

▼403 Forbidden誤認対策、WAFチューニングサポートのルール追加!WordPressサイトガードの設定
https://bibabosi-rizumu.com/siteguard-waf-tuning-support/

mixhostでのWAFの解除方法

今回はWAFが原因でcontactform7のお問い合わせフォーム編集画面で「保存」を押すと403エラーになるので解除をします。

せっかくなので「SiteGuard WP Plugin」を使って、シグネチャを設定してcontactform7を除外をしようとしたらWAFのエラーログが見当たらず、mixhostにWAFのエラーログを確認する方法を聞いてみたら、「WAFのエラーログについては確認できない仕様になっている」と返事が来たからmixhostでは、WAFを「オフ」にするしか方法が無さそう…
他に確認方法があるのだろうか?これがわからない…

【設定方法】
「cPanel(サーバー管理画面)」にログイン → 「ModSecurity」をクリック → 「オン/オフ」とステータスがあるので「オフ」にすると無効化できる。

まぁ、さくらのレンタルサーバー使ってた時はWAFオフだったけど特に何もなかったしあまり気にしなくてもいいっかなー

wordpressのサーバー移管で「All-in-One WP Migration」でのサイト移管が上手くいかないから手動で移管作業を行ったんだけど、もしかしてうまくいかなかった理由ってWAFかな?ローカルに試しでやった時はうまくいったからファイル自体に問題があったとは考えずらいし…