Post Snippetsのスニペット登録がヘテムルで403エラーになる原因と対処法

ヘテムルサーバーにインストールしたWordPressブログにPost Snippetsプラグインを入れ、新規にスニペット登録をしようとすると403エラーになる場合があります。

今回は、Post Snippetsの使用中に403エラーが出てしまう原因と、その対象方法についてまとめました。

Post Snippetsプラグインついて

Post Snippetsの特徴やスニペット登録の方法、ショートコードを割り当てる方法などについては、以下の関連記事をチェックしてみてください。

Post SnippetsでJSや広告タグをスニペット登録してショートコードを発行する方法

2019年7月5日

ヘテムルサーバーでPost Snippets使用中に403エラーの出る原因

ヘテムルサーバーでWAFを有効にしている場合に、PHPやJavascriptのコードをスニペット登録しようとすると、403エラーで弾かれます。

登録しようとしたスニペットが「クロスサイトスクリプティングの可能性が高い」と判定されたり、「SQLインジェクションからの防御」として弾かれることが原因というわけです。

ヘテムルの403エラーを回避してスニペット登録する方法

「この403エラーはどうしようもないのか?」
「ヘテムルサーバーではPost Snippetsプラグインは使えないのか??」

・・・

と言うとそうではなく、エラーを回避しながらスニペット登録できる方法があります。

ヘテムルの403エラーを回避してスニペット登録する方法
  1. ヘテムルサーバーの管理画面で、一時的にWAFを切る
  2. ヘテムルサーバーのWAFログを見ながら「除外ルール」を指定する

❶の一時的にWAFを切る方法は運用上、現実的ではないので、ここでは❷の除外ルールを指定する方法について解説していきます。

ヘテムルサーバーのWAFで除外ルールを指定する

ヘテムル管理画面へログインして、

右メニューの「各種設定」>「WAF設定」をクリックします。
Post Snippetsのスニペット登録がヘテムルで403エラーになる原因と対処法

ドメイン一覧から対象のドメインの「詳細を見る」ボタンをクリックすると、
Post Snippetsのスニペット登録がヘテムルで403エラーになる原因と対処法

WAFの設定状況が表示されますので、ログ参照リンクをクリックします。
Post Snippetsのスニペット登録がヘテムルで403エラーになる原因と対処法

WAF検知ログより、403エラーが発生した時刻のログを確認し、
Post Snippetsのスニペット登録がヘテムルで403エラーになる原因と対処法

検知ログに記載さた以下の除外ルールを.htaccessファイルに追加していきます。

SiteGuard_User_ExcludeSig xss-tag-filter
SiteGuard_User_ExcludeSig sqlinj-97
SiteGuard_User_ExcludeSig oscmd-10
・・・

複数除外記述があるときは、URL-Pathがwp-admin/option-general.php?page=post-snippetsの除外ルールを、ひと通り追加していくと良いでしょう。
Post Snippetsのスニペット登録がヘテムルで403エラーになる原因と対処法

あとはこの.htaccessファイルを、サーバーのwp-adminフォルダ内にアップロードすればOKです。

.htaccessをアップしてもまだエラーが出る場合

除外ルールを指定してもまだ403エラーが出る場合は、以下の2点を確認してみてください。

WAFの除外ルールを指定しても403エラーが出る場合の確認ポイント
  • .htaccessファイルのアップロード先が違う
  • 除外設定しているシグネチャが違う

.htaccessファイルのアップロード先が違う

まず.htaccessのアップロード先は、ルートの.htaccess(WordPressインストール時に自動で生成されるhtaccess)ではなく、エラー発生場所であるwp-adminフォルダ内です。

アップロード先が間違っていないかどうかを確認してみましょう。

除外設定しているシグネチャが違う

また、除外ルールは403のエラーが発生するごとに、新たに書き足さないといけません。

ヘテムル管理画面のWAFログを参照し、増えているシグネチャ(xss-tag-filterや、oscmd-10、sqlinj-97などの文字列)があれば追加設定してみてください。

関連記事

コメントを残す