BBQ Firewallが原因!?ブロック読み込みエラーが出る場合の対処法

WordPressのセキュリティ系プラグイン「BBQ Firewall」。
設定不要、有効化するだけでセキュリティを高めてくれるため、利用している方も多いのではないでしょうか。
ただし、テーマ固有の特殊なブロックの場合はエラーとなる場合があります。
今回発見したのは、テーマ「Snow Monkey」と公式プラグイン「Snow Monkey Blocks」でのエラー。
この例を参考に、対処法を解説していきます。
特殊なブロックでエラーとなる

編集中に特定のブロックでエラーが出たため、1つ1つプラグインを有効化しながら確認したところ「BBQ Firewall」が原因でした。
エラーが確認できたのは、Snow Monkeyの以下のブロック。
- [WPAW] サイトブランディング
- 最近の投稿(Snow Monkey Blocks)
- 任意のタクソノミーの投稿(Snow Monkey Blocks)
「サイトの説明」や「一致する投稿がない場合のテキスト」の中で改行した際にエラーとなりました。
ブロック読み込みエラー:返答が正しいJSONレスポンスではありません。
この表示の後に入力を続けると
このブロックでエラーが発生したためプレビューできません。
となり、そのブロックを編集できなくなります。
エラーを避ける方法
エラーを避ける方法は2つ。
- BBQ Firewallを無効化して編集する
- ホワイトリストのプラグインを追加
解決方法①
BBQ Firewallを無効化して編集する
エラーの問題を、Snow Monkey開発者であるキタジマタカシさんに共有したところ以下の回答が。
エディター上で PHP を使ったブロックをレンダリングするときは REST API 経由でリクエストがおこなわれ、返ってきたデータを使ってレンダリングするわけですが、このリクエストがブロックされてしまうようです。フロントだと REST API を通さずに普通に PHP でレンダリングされるためリクエストが発生せず、エラーはでないようです。
つまりBBQ Firewallを一旦無効化し、編集が終わった後有効化すれば動作には問題ないということになります。
ですが、この方法では根本的な解決とはなりませんので、ブロックの編集をよく行うという場合は以下の方法をおすすめします。
解決方法②
ホワイトリストのプラグインを追加
エラーの問題をBBQ Firewallの開発者であるJeff Starrさんにも共有し、アドオン(プラグイン)で対処できるということを教えていただきました。
プラグインは少し編集する必要がありますが、超簡単です。
プラグインの作成方法
公式サイトからホワイトリスト(Download BBQ Allow List)をダウンロードします。
21行目を次のように編集します。
$bbq_whitelist_query_string_items = array(‘%0a’);
編集したPHPファイルを任意のフォルダに入れ、Zip形式で圧縮します。
管理画面からプラグインを新規追加でアップロード、有効化で完了です。
よく分からないという方は、私が作成したものをダウンロードできるようにしておきますので、参考にしてみてください。
プラグインの解説
エラーについて簡単に説明すると、今回の場合、改行文字%0a
は誤検出としてブロックされるようです。
解決するには、ファイアウォールルールからこのパターンを削除するという理屈になります。

1箇所編集するだけなので超簡単ですね。
カスタマイズルールを読んでみると、他に誤検知してしまうものがあれば配列に追加することでエラーを防ぐことができるようです。
その逆に、ファイアウォールにブロックしたいものを追加したい場合は、ブラックリストをダウンロードし同じように編集を加えます。
まとめ:開発者に感謝
今回分かったことは、どちらの開発者はとても親切であり、問題を解決するために積極的であったということです。
このような開発者のプロダクトは、ユーザー目線であり信用性が高いため、今後も安心して利用することができるでしょう。
ともに感謝いたします。
以上、BBQ Firewallのエラーを防ぐ方法でした。


おすすめWEBスクール
WEB制作やWEBデザインを学びたいなら、SNSでも話題の「デイトラ
どのコースも10万円前後と業界最安値で、副業や転職に向けて十分なスキルを身につけることができます。
\ クリックしてジャンプ! /
お気軽にコメントどうぞ