こんばんは!
最近は肌寒い日々が続いていますね。
年末年始は体調管理に気をつけてお仕事、勉強に頑張ってください。
今日はWordPressとよく喧嘩するWAFのお話です。
今回はその対処法をまとめてくれているサイトを見つけたのでここで紹介させていただきます。
1.WAFは正常なリクエストも過剰検知してしまう場合がある
WordPressで広告管理ができるAdRotateで403エラーが発生!原因はロリポップのWAFにあった!でもお話したとおり、WordPressのプラグインやシステムを誤認識してしまうケースがあります。
正常なリクエストまで拒否してしまうことがあります。WordPressを運用する上でWAF設定が色々な邪魔をしてしまうことが多いようです。中には管理画面にすらログインできないなんて人もいるようですから。
WordPressのプラグインやシステムを誤認識してしまう現象を誤検知、過剰検知、False Positive、偽陽性というそうです。
WordPressで403エラーが出るのはWAF設定が原因のことが多いです。
私のサイトはロリポップですが、やはりWAF設定は強力です。
私はAdrotateという広告管理のプラグインを利用していますが、iTunesのアフィリエイトボタン作成機能「Link Maker」との相性が悪く、しょっちゅう403エラーが表示されます。
↑↑このリンクボタンのシステムとWAF設定がかち合いエラーになっていたようです↑↑
その都度WAF設定を無効化してから更新していましたが、反映までに5〜10分ほど時間がかかります。地味に時間がかかります。
昔はアプリの紹介は少なかったので良かったのですが今後増えて行く可能性もあるのでなんとかしたいなと思っていました。
今回はWAFの誤検知対策をいくつかご紹介していきます。
2.プラグインなどを更新するときだけWAF設定をオフにする方法
WordPressで広告管理ができるAdRotateで403エラーが発生!原因はロリポップのWAFにあった!で紹介した方法がこちらです。
プラグインの更新やデータ更新のときにWAF設定をオフにします。そうすることで403エラーにならずに更新することができます。
しかしWAF設定のオンオフ切り替えは反映されるまでに5〜10分ほど時間がかかります。その間に休憩したりすればいいですが、時間がもったいないですよね?あまり更新しないものであればそれでいいですが手間がかかるのであまりお勧めはできませんね。
3.WAF設定の除外ルールを適応させ、該当するものだけWAFを利用しない方法
WAF誤検知対策は先ほど紹介した「プラグインなどを更新するときだけWAF設定をオフにする方法」のように一時的にWAF設定を切るのが一般的です。しかしその都度ロリポップのコントロールパネルにアクセスしてWAF設定を切るのは5〜10分の待ち時間が発生してしまうので効率的ではありません。
そんなときは
- WAFチューニングサポートを使い除外ルールを適応する
- htaccessに除外ルールを直接書く
この2点をすることで解決します。しかし何でもかんでも除外してしまうとWAFの意味をなさなくなってしまう場合もあります。1、2箇所ならいいかもしれませんね。
時と場合に応じて使い分けてみてください。
設定の詳細は下記サイトに詳しく載っていますのでこちらを参考にしてみてください!
ちなみに私は除外ルールを直接htaccessに書く方法を実践しています。
WAFをONしてると403エラー 除外ルールを設定してみよう
4.ドメインを閲覧用と管理用で分けて閲覧用のドメインはWAFで防御し管理用のドメインはWAFは無効にして、BASIC認証で防御する方法
ドメインを閲覧用と管理用に分けて別の方法で危険なアクセスを防御する方法です。基本的には閲覧用はWAFで防御し、管理画面は共有SSLとBASIC認証で防御するようです。
こちらは設定方法が難しく、短時間で再現できないので時間ができたらチャレンジしてみたいと思います。
上記サイトの通りに【WordPress HTTPS(SSL)】プラグインを入れたら管理画面にアクセスできなくなる現象に遭遇しました。今は下手に弄らずもう少し、記事をしっかり読んでから作業に移ろうと思います。
【WordPress HTTPS(SSL)】プラグインで、WordPressの管理画面をSSL通信に設定する手順
プラグインの削除方法は上記サイトを参考にさせていただきました。こちらのコメント欄の指示どうりに試してみたら見事に管理画面にログインすることができました。プラグインの追加は慎重に行わないといけないですね。反省です。
5.まとめ
WAFはセキュリティ面を考えると有効にしておきたいです。しかし、WordPressのプラグインと喧嘩することが多いので適度に距離をとりつつうまく共存していけたらと思います。
3つ目の方法は私もまだ試していませんので試してみたら記事にしてみたいと思います。
でもあるように共有SSLに頼りきりも良くないようですね。
しかし、個人のサイトはオンラインショップなどの顧客の個人情報などを管理するわけではないので無理に独自SSLにする必要もないのかな?
とりあえず今後の経過も見ながらじっくり考えてみたいと思います。