エラーが発生しだした経緯
ブログのページを多言語化しようとして、Bogoというプラグインをインストールしました。日本語ページを切り替えて、英語などのページを用意したい場合に便利なプラグインですが、このプラグインをインストールした後に急にエラーが発生するようになりました。
突然の「JSONエラー」
Bogoをインストール後、ブログ記事を修正してWordPressで保存ボタンを押すと「JSONエラー」で保存できない現象が発生しました。
最初はBogoが原因だと思っていましたが、直接の原因はBogoではありませんでした。
原因はWAF
直接の原因は、WAF(Web Application Firewall)でした。WAFで「クロスサイトスクリプティング(タグ1)からの防御...」と表示されているように、ブログの更新がクロスサイトスクリプティングの攻撃と誤認されてしまったようです。
簡単に解決する方法はWAFをOFFにすることですが、それはセキュリティ上避けたいところです。
そこで、WAFをOFFにせずにこの問題を解決する方法を探しました。結論として、自分のIPアドレスを除外パターンに加えるという方法に落ち着きました。
IPアドレスを除外に加えておく
私はプロバイダ経由で接続しているため、IPアドレスは接続のたびに変わる可能性がありますが、フレッツのルータを使用しているため、頻繁に変わることはありません。
以下の手順でIPアドレスを除外リストに追加しました。
まず、.htaccessファイルに以下の内容を追加します。
ConoHa WINGの場合は、サイト管理→サイト設定→応用設定にあります。
<IfModule mod_siteguard.c>
SiteGuard_User_ExcludeSig ip(xxx.xxx.xxx.xxx)
</IfModule>
xxx.xxx.xxx.xxxは、自分のIPアドレスを入力してください。IPアドレスはWAFの警告メッセージから確認できます。
IPアドレスが変わった時の対処
プロバイダ接続だとIPアドレスが変わることがあります。そのため、IPアドレスが変わった場合は、除外設定を更新することを忘れないようにしましょう。
JSONエラーが再発生することで、IPアドレスの変更に気づくことができます。