<< CharcoalPHP 1.0 Coming soon | main | 配列+プロパティ両方のアクセスができるクラスを作ってみました >>
さくらでWAFをONにするとPHPSESSIDがENC_PHPSESSIDになってセッション復元できない件
タイトル長い(笑)

OpenPNEである日突然招待メール送信時の画像認証(キャプチャ画像による認証)ができなくなってしまい、ハマってしまったので、メモ。

エラー内容は、「確認キーワードが誤っています」。

登録時のエラー箇所で_SESSIONの中を見てみると、確かに空。
っていうか、何も入ってない。

なんだこりゃ、ってことで、キャプチャ画像を生成している部分を確認。
public_html/cap.phpからkcapctha.phpを呼び出している。こいつか?
と思うが、特にセッションがらみのロジックは無い。
そこで、Kcaptchaのロジックを外し、session_start()したあとのヘッダ情報を確認してみるが、PHPSESSIDが正しく吐かれている。
がしかし、ブラウザが受け取るクッキーは

Cookie: ENC_PHPSESSID=%2becFX2FNcQbB61OuymsUNxFW6NVBmuTaOW/sfxrJuahEguweCV3eRLQoQhDiD2L5

みたいになっている。
なんでやーと1日悩みました・・・が、サーバのコントロールパネルを見ていてハタと気づきました。

-------------------------------------------------------
本機能を有効にすることにより、ソフトウェアの動作やインストールに影響が出る場合があります。 ご利用の前に必ずこちらをご一読ください。
-------------------------------------------------------

これか!(笑

てことで、サーバのWAF設定を外してみると、ビンゴ、見事にセッションを復元できました。

多分、

ブラウザ ←→ WAF ←→ Webサーバ

って構成になってて、WAFでENC_PHPSESSIDとPHPSESSIDの変換をしているんだろうなと。
んー、しかしこんな簡単な簡単なロジックで復元できないとなると、WAFってあんまり意味ないようなw
(パソコンで言うと、ウィルスも駆除する代わりにExcelが起動できなくなるウィルス対策ソフトみたいなw)

| comments(0) | trackbacks(0) | by stk2k
コメント
コメントする









この記事のトラックバックURL
http://devlog.sazysoft.com/trackback/954315
トラックバック