アピールエリアの怪・その後

WordPressで小説サイト

 前回、Cocoon設定画面からアピールエリアの画像(当サイトでは「看板」と呼んだりしておりますが)を変更しようとすると

Forbidden

 …とオコられ、変更した設定を保存できない!という現象についてお話をしました。

 設定パネルを経由せずにCSSで直接指定する方法なども検討してみたのですが、サイトにはめてみたときの画像の見栄えを確認したりするには不向きな方法です。一方でSnapUpのステージングサーバー1上ならちゃんと変更できるので、とりあえずは変更をしたステージング環境からバックアップをとって、本番サーバーへ展開…というまこと迂遠な手法で変更かけているよ、というのが前回までの話。

 ところが、どうにも問題はアピールエリアだけでなくCocoonの設定画面全体に及んでいるらしいのです。それというのも、Cocoonの設定画面から使える機能で【通知】というのがありまして、サイト上部ベルト状に通知メッセージを簡単に表示出来るというのが面白そうだったのでこれもやってみたところ、やっぱりForbidden。
 Cocoonのサポートサイトを見てもあまりピンとくる症例がなく、ええい、とばかりにエラーメッセージをまるっとコピペして再びチャットGPT君にお尋ねしてみたところ…判ったのは、どうやら怪しいのはWAFらしい…ということでした。

 WAFって何だ?

 WAIならWork as Imagined2、WADならWork as done3、WWFならパンダ印の世界自然保護基金…という莫迦話はさておき、調べてみたらWAFとはWeb Application Firewall、つまりはWebで動作するアプリケーション用の防壁ファイアウォール ということのようです。ざっくり言うならサイトをサイバー攻撃から護る仕組みですね。

 調べてみるとさくらのレンタルサーバでもWAFの設定がありまして、ドメインごとにWAFを利用するかしないかを設定することができるようになっていました。そういえばサーバのコントロールパネルに表示される「推奨設定」とやらの言うがまま、以前そんなものも設定したなぁ、というコトに思い至った柳でした。(<要は忘れてた)
 ただし前提条件というのがついておりまして、曰く…

  • シグネチャ検査・セッション管理などの検査を実施しており、攻撃にあたると判断したアクセスを遮断いたします。
  • 遮断した接続を自動で復旧させることはできません。
  • ウイルスは検知できません。
  • 監視対象となるプロトコルは、HTTPとHTTPS(共有SSL、SNI SSLが対象。ただしCookieの引き継ぎは不可)です。
  • 海外等、特定するアクセスのみを遮断することはできません。
  • CGI、PHPプログラムの動作に影響が出る恐れがあります
  • CGI、PHPプログラムのインストール時に影響が出る恐れがあるため、その場合はインストール前にWAFを無効にしてください。
さくらのサポート情報より抜粋 ハイライトは柳

 
 で、試しにこれを切って画像の変更をかけてみると…あっさりできました。
 …あ、これか。
 確かに、前提条件に“動作に影響が出た場合にはWAFを無効にしろ”、とちゃんと書いてあるのですね。

 サイバー攻撃からサイトを守ることは必要なので、WAFを設定しておくに越したことはないのです。しかし、何だってそうですがセキュリティを高くすると諸々面倒臭くなる。ネットブラウザだってセキュリティのレベルを上げれば上げるほどネットサーフに制限がかかる。それは仕方ないことです。
 このため、この現象への対応としては更新作業をするときだけWAFをオフにする、という結論に達したのでした。しかも投稿や固定ページの編集はひっかからないようですので、設定変更を伴うサイト更新の場合だけ、ということでよさそうです。

 もうひとつ。
 最近、WordPressのテーマファイルエディターからファイルに変更をかけようとすると

致命的なエラーをチェックするためにサイトと通信できないため、PHP の変更は取り消されました。SFTP を使うなど、他の手段で PHP ファイルの変更をアップロードする必要があります。

WordPressのエラーメッセージ

 …と文句をいわれるのもあるいはこの所為だったかも知れないと思い、検証してみたところやはり正解。下手にテーマファイルを弄るとサイトが壊れますから、警戒されるのも納得。今度からテーマファイルエディターを開けるときもWAFを切ることにしましょう。

 ついでに言うと、ステージング環境で設定変更した時にForbiddenにならなかったのは、ステージング環境はドメインが違う4から、そもそもWAFの適応範囲外だったというオチなのですね。うむ、謎が解けた。

 柳がいかに感覚だけでサイト運営をやってるかという現実が暴露された格好ですね。この件に関して、結局PHP8.1は潔白だったという証明ができました。ごめんよPHP8.1。

  1. さくらのレンタルサーバで提供されるサイトバックアップサービス。他会社との連携サービスらしい。
  2. Work as Imagined…行うことが期待された作業。
  3. Work as done…実際に行われた作業、WAI,WADいずれも安全に関する用語。
  4. Snupupのステージング環境は作成するつど、単語ふたつ+8桁の数字をランダムに組み合わせた仮のURLが賦与される仕組み。 

コメント