CEOブログ

横浜で活躍するホームページ作成・開発会社アットライズの代表取締役社長(CEO)が綴る、日々の奮闘記!!

備忘録

[備忘録]WordPress:WAFで403エラーが出た場合の対処

投稿日:

2166434-s

WAFのON/OFFで切り分けてみる

WordPressの設定を行っていると、「403エラー」となり正しく表示されないことがある。
403エラーになる原因はいくつかあるが、まずはWAF(*1)を一旦OFFにしてみて、状況が改善されるかどうか確認してみると良い。(WAFのON/OFFは、サーバーにより異なるので お使いのレンタルサーバー等でご確認ください)

(*1) WAF(Web Application Firewall)
 その名の通り、Webサイトのアプリケーション用に設けられたファイアウォール。
 不正な攻撃からサイトを守り、最近では安価なレンタルサーバーにも導入されていることが多い。

もし、WAFをOFFにして エラーが出なくなったら WAFの設定により 本来は正しいアクセスにもかかわらずエラーとして弾かれている、、ということになります。

特定のシグネチャ、またはファイルのみを除外する

エラーが出なくなるからと言って WAFをOFFにしたままでは、せっかくのファイアウォール機能が活用できない。。
そんな時は、エラーになっているシグネチャ、またはファイルのみを除外しよう。

これも お使いのレンタルサーバーによってくるが、WAFのログを参照できるのであれば、当該アクセスでどんなエラーになっているのかログから確認する。

ログには、具体的に 何のファイルに対する どんな通信が不正アクセスとして検出されたのか記録されているハズだ。

シグネチャは、例えば「xss-onX-tagall」「xss-onX-45」「xss-tag-1」「xss-tag-filter」などというキーワード。または、「00109017」「00105001」「00102001」「00101045」などといった8桁の数字で表示されている。
そしてログの中に、「https://www.xxxxx.com/wp-admin/xxxxx.php」などとファイル名が表示されている。

.htaccess にWAF除外指定

.htaccess にWAF除外指定を記述することで、対処できる。
 

(1) シグネチャ指定する場合:SiteGuard_User_ExcludeSig

シグネチャ指定する場合「SiteGuard_User_ExcludeSig」を定義する。
 
例1)全てのシグネチャ(all)を指定
ただしコレだと全シグネチャを通してしまうので意味が無い。。
————————
SiteGuard_User_ExcludeSig all
————————
 
例2)シグネチャを個別に指定
waf.logに記録されているシグネチャを指定。(複数をカンマ区切りで列挙できる)
————————
SiteGuard_User_ExcludeSig xss-onX-tagall,xss-onX-45,xss-tag-1,xss-tag-filter
————————
私が実際に試した時は、ログにあるシグネチャを指定しても、次はまた別のシグネチャでエラーとなり、、、ということを繰り返し、上記の4つまでやったところで この方法は断念。。
 

(2) ファイル名を指定する場合:xxxx.php

特定のファイルへのアクセスでエラーとなっているので、そのファイルへのアクセスを除外する設定とした。

下記定義は、xxxx.phpに対する全てのシグネチャ(all)を除外。
————————
<IfModule mod_siteguard.c>
<Files ~ "xxxx\.php$">
SiteGuard_User_ExcludeSig all
</Files>
</IfModule>
————————

これでWAFをONにしたままで、xxxx.phpに対する403エラーは出なくなった。
 
 

-備忘録

関連記事

[備忘録]ブラウザに表示されるURLを書き換える方法

メールフォームの重複送信対策 メールフォームの完了メールが重複して何度も送られてくる問題についてはブログ(*1)に書いた。  (*1) [備忘録]メールフォーム:完了メールが何度も送信される問題。。 …

[備忘録]Outlook:ロリポップで最新メールが受信できなくなった(IMAP)

今まで受信できていたが、急に出来なくなった。。 弊社にてサポート契約しているお客様から、「急にメール受信ができなくなった」と相談あり。。 詳しい経緯を確認すると、 ・メールサーバーは「ロリポップ」 ・ …

[備忘録]Windowsコマンドプロンプト:コマンドを一時的に停止する方法

コマンドプロンプトで実行中のコマンドを一次停止する方法 コマンドプロンプトでコマンドを実行中、例えば大量のファイルコピーとか 処理時間が長くかかるような場合、途中で一旦止めて、後ほど再開したい場合があ …

[備忘録]WordPress:フォームの確認画面で過去の情報が表示される

プラグイン「MW WP Form」の動作不良 問い合わせフォームで「確認画面」に移行すると、その時入力した情報ではなく 過去に送信された別の情報が表示される事象が発生! フォームの入力情報なので、場合 …

[備忘録]Amazonの「価格推移」「レビューのサクラチェック」

アマゾンにはアヤシイ業者・商品が隠れてる。。 ネット通販で最も利用するのがダントツでAmazonです。 そこでAmazonでの「価格の推移」や「サクラと思われるレビュー」のチェックツールを。   価格 …