ヘテムルサーバーにインストールしたWordPressブログにPost Snippetsプラグインを入れ、新規にスニペット登録をしようとすると403エラーになる場合があります。
今回は、Post Snippetsの使用中に403エラーが出てしまう原因と、その対象方法についてまとめました。
目次
Post Snippetsプラグインついて
Post Snippetsの特徴やスニペット登録の方法、ショートコードを割り当てる方法などについては、以下の関連記事をチェックしてみてください。
ヘテムルサーバーでPost Snippets使用中に403エラーの出る原因
ヘテムルサーバーでWAFを有効にしている場合に、PHPやJavascriptのコードをスニペット登録しようとすると、403エラーで弾かれます。
登録しようとしたスニペットが「クロスサイトスクリプティングの可能性が高い」と判定されたり、「SQLインジェクションからの防御」として弾かれることが原因というわけです。
ヘテムルの403エラーを回避してスニペット登録する方法
「この403エラーはどうしようもないのか?」
「ヘテムルサーバーではPost Snippetsプラグインは使えないのか??」
・・・
と言うとそうではなく、エラーを回避しながらスニペット登録できる方法があります。
- ヘテムルサーバーの管理画面で、一時的にWAFを切る
- ヘテムルサーバーのWAFログを見ながら「除外ルール」を指定する
❶の一時的にWAFを切る方法は運用上、現実的ではないので、ここでは❷の除外ルールを指定する方法について解説していきます。
ヘテムルサーバーのWAFで除外ルールを指定する
ヘテムル管理画面へログインして、
右メニューの「各種設定」>「WAF設定」をクリックします。
ドメイン一覧から対象のドメインの「詳細を見る」ボタンをクリックすると、
WAFの設定状況が表示されますので、ログ参照リンクをクリックします。
WAF検知ログより、403エラーが発生した時刻のログを確認し、
検知ログに記載さた以下の除外ルールを.htaccessファイルに追加していきます。
SiteGuard_User_ExcludeSig sqlinj-97
SiteGuard_User_ExcludeSig oscmd-10
・・・
複数除外記述があるときは、URL-Pathがwp-admin/option-general.php?page=post-snippetsの除外ルールを、ひと通り追加していくと良いでしょう。
あとはこの.htaccessファイルを、サーバーのwp-adminフォルダ内にアップロードすればOKです。
.htaccessをアップしてもまだエラーが出る場合
除外ルールを指定してもまだ403エラーが出る場合は、以下の2点を確認してみてください。
- .htaccessファイルのアップロード先が違う
- 除外設定しているシグネチャが違う
.htaccessファイルのアップロード先が違う
まず.htaccessのアップロード先は、ルートの.htaccess(WordPressインストール時に自動で生成されるhtaccess)ではなく、エラー発生場所であるwp-adminフォルダ内です。
アップロード先が間違っていないかどうかを確認してみましょう。
除外設定しているシグネチャが違う
また、除外ルールは403のエラーが発生するごとに、新たに書き足さないといけません。
ヘテムル管理画面のWAFログを参照し、増えているシグネチャ(xss-tag-filterや、oscmd-10、sqlinj-97などの文字列)があれば追加設定してみてください。
コメントを残す