WEB Tips WordPress Tips デザイン・コーディング

サイトの保存ができない、更新されないのはWAFが原因かも

2023-07-08

本記事にはプロモーションが含まれています。

サイトの保存ができない、更新されないのはWAFが原因かも

ソラミ♪

Webエンジニアをやりつつ、デザインにも携わる株式会社コムワークの中の人。WordPress、Adobeアプリ、カワウソ好き。 2015年から当ブログ運営|2008年からGmail使用中|WordPress制作10年以上|15社以上のレンタルサーバー利用経験|100件以上のドメイン取得運用|サイト・ドメイン移転多数 »  もっとくわしく

WordPressやホームページでコンテンツの更新を行ったにもかかわらず、いくらブラウザの更新ボタンを押しても、キャッシュクリアをしても変更内容が反映されないことに困ってませんか?

その原因の一つとして、サーバーのWebアプリケーションファイアウォール(WAF)が作業をブロックしている可能性があります。

本記事では、WAFが更新内容の保存を妨げた実際の例を挙げて解決策について詳しく解説します。

wp_head、wp_footerにコードが入力できない (ConoHa WING)

WordPressで特定の記事だけにCSSやJavaScriptを適用したい時、wp_head, wp_footerにコードを入力できる機能があるテーマがあります。(AffingerCocoonなど)

カスタムフィールドで独自に実装することもできますが、あらかじめテーマで実装されているとありがたいですね。

Affingerのhead / footerに出力するコードの入力欄

このhead / footerに入力することで、特定の記事だけにCSSやJavaScriptを適用することができるのでとても便利です。

しかし、何度入力しても、更新すると保存されていないという現象が起こりました。

原因:WAFでブロックされていた

これは、ConoHa WINGWAFによってブロックされていたのが原因でした。

ConoHa WINGではWAFのログが確認できます。

コントロールパネル>サイト管理>サイトセキュリティ>WAF

確認してみると攻撃元IPアドレスに自分のIPアドレスが。WAFでクロスサイトスクリプティングと判断されてしまっています。

対処法1:WAFでログを除外する

まずは、WAFの除外設定をしてみます。

当該ログの左にある「除外」ボタンをクリックします。自分以外のログを除外しないように気をつけます。

対象のログが除外対象になります。

この状態で、再度wp_headに出力するコードを入力してみて、保存されればOKです。

でも今回の場合、これだけでは入力した内容が保存されませんでした。

対処法2: WAFを一時オフにする

ログの除外では解決しなかったので、一時的にWAF自体をオフにしました。

オフの状態で、wp_headに出力するコードを再度入力し、保存。

今回はちゃんと保存されました。

編集が終わったら、WAFはまた再度ONにしておきましょう。

WordPressプラグイン Rinkerの設定が保存できない(ConoHa WING)

楽天やAmazonの商品リンクが簡単に作成できるWordPressプラグインRinker

Rinkerをインストールして最初にやるのは、AmazonのトラッキングIDやアフィリエイトASPのIDなどを入力設定します。

ここで設定を保存しようとエラーになる場合があります。

閲覧できません(Forbidden access)

これもWAFでブロックされていたのが原因でした。

恐らくLink Switch用のJavaScriptタグがブロックの理由じゃないかと。

対処法:WAFのログから除外する

これも前述の方法と同様、WAFのログを確認して自分の操作したログがあれば「除外」にします。

今回は、これだけで解決しました。

静的HTMLからリンクしているPDFを開くと501エラーになる(Xserver)

この問題は結構解決するのに手間取りました。

エックスサーバー で運用中のあるサイトで、普通の静的HTMLから普通のPDFファイル(内容は料金表)をリンクさせていたのですが、ファイルを開こうとすると501エラーになってしまいます。

エックスサーバーで501エラーになるのは、WAFによるものが多いのではと思います。

対処法:WAFの機能を一つ一つオフにして確認する

エックスサーバーのWAFでは6つの設定項目が存在します。

  • XSS対策
  • SQL対策
  • ファイル対策
  • メール対策
  • コマンド対策
  • PHP対策

エックスサーバーのWAFは、ConoHaのようにログが確認できたり、特定のファイルを除外したりする機能はありません。

上記の設定項目でどれが原因なのかを特定するには、一つずつOFFにして改善するかどうかを確認していくしかないようです。

原因はリンク先のディレクトリ名だった

結論から言うと、今回のエラーになる原因は「etc」と言うディレクトリ名がWAFの「ファイル対策」に引っかかっていたようでした。

詳しくは以下の記事でまとめています。>>> 501エラー Not Implementedが表示された時はエックスサーバーのWAFが原因かも

この件では、せっかくの有用なセキュリティ機能をできるだけ有効にしておきたかったので、etcというディレクトリ名を他の名前に変更してリンクを修正し解決しました。

XserverのWAFでトラブルの原因を特定するのは難しい印象でした。

403エラー(Forbidden access)や501エラーが表示されれば、WAFが原因じゃ?とすぐに気がつくことができるんですが、エラーも何も表示されない場合はWAFが原因かもと気づくのに時間がかかってしまいます。

何かトラブルが会ったときはWAFが原因の場合もあるということを頭の片隅に入れておくのが大事ですね。

ConoHa WING、Xserverともに、WAFをはじめとしてセキュリティが装備されている高機能サーバーです。

  • この記事を書いた人
  • 最新記事

ソラミ♪

Webエンジニアをやりつつ、デザインにも携わる株式会社コムワークの中の人。WordPress、Adobeアプリ、カワウソ好き。 2015年から当ブログ運営|2008年からGmail使用中|WordPress制作10年以上|15社以上のレンタルサーバー利用経験|100件以上のドメイン取得運用|サイト・ドメイン移転多数 »  もっとくわしく

-WEB Tips, WordPress Tips, デザイン・コーディング
-, ,