ここのところまたconcrete5を使っているわけですが、heteml、lolipopで動かしているコンクリの調子が悪い。

文字列に「and」が入るだけで更新できないブロックが発生する・・・。

なんというか、辛い。

たぶんSQL関係の対策で大雑把なことを誰かがしてるんだろうなあ・・・と思いつつ、困ってコミュニティにて相談したところ、WAF問題が発覚したのです・・・。

 

WEBアプリケーションファイアウォールによる犯行

今回の問題の犯人、WAFさんではありますが、彼なかなかやりよるんですよ。

いれとくと悪さもするけど、それだけである一定のセキュリティは担保されるよね。という代物。

ただしざっくりすぎたりするおかげで今回のような悪さをするという・・・。

ANDをデータベースに書き込むデータ文字列に入れない!という壁

同業者の方はご存知でしょうが、例えばデータベースに書き込むときって、データベースサーバに命令文を投げつけることで保存されますよね。

その中でandを含む文字列を整形して投げてはいけない!という凶悪なルールを作ることによってセキュリティを担保していると(もちろんそれ以外にも色々やってるとはいえ、今回の問題はそこ)いう恐怖。

つまり、「テツ and トモ」と書き込むことのできないwebシステムの完成です。

 

AjaxのPOSTで403が帰ってきた時、明らかに自分が悪くない時はWAFも疑ってみよう・・・

オープンソースのCMSを、インストール手順通りにインストールし、いわゆるアドオンやプラグインを外し、デフォルトのテーマやテンプレートを動かしても、謎の403が返って来る時はWAFの設定を確認してみましょう。

サーバの管理画面だけですべての問題が解決してしまうかもしれません・・・。