こんなマニアックなこと体験しているの俺だけじゃないか?
けど、分からない人はずっと分からない気がするので、メモ!
■現象
Firefoxでプロキシと通してhttpとhttpsのURLを行ったり来たりするとセッションが切れる
IEは起きないんで、なんでだーとデバッグした。
んでわかりましたよ。3時間後に。
Ethnaでは、$_SERVER['REMOTE_ADDR']をセッションに保存してる。
そんで$_SESSION['REMOTE_ADDR']と$_SERVER['REMOTE_ADDR']を比較して、あんまり違うようだとセッション削除しちゃう。
で、出力してみたら案の定全然違った。
$_SESSION['REMOTE_ADDR']=プロキシのIP
$_SERVER['REMOTE_ADDR']=裸のIP
要は$_SERVER['REMOTE_ADDR']が、httpとhttps間のリダイレクト時に変更してしまっていたのが問題。
どうもこりゃFirefoxの問題臭いってことで、自宅サーバー立てたときにお世話になった確認くん(VIA the UGTOP)で確認してみても、IEとFirefoxでのIPに差は無い。
あったら怖いんだけど。
で、「Firefoxのバグなんでどうしようもないですな、こりゃ」と報告しに行こうとした矢先に見つけました。
Firefoxの管理画面見てたら、SSLは別にプロキシを設定する欄があった。
・・・はぁ。
「すべてのプロトコルで~」をチェックしたら、無事ちゃんと動いたー。
実際問題分かったは良いけど、このチェックなくすとセキュリティは落ちるわけだし、Firefoxの設定をちゃんとすれば通ったしってことで、とりあえずこれはこれで終了。
なんかお客さんからクレーム来た時の為に、覚えておけば良いかな。
分かって良かった。
びびったー。
けど、分からない人はずっと分からない気がするので、メモ!
■現象
Firefoxでプロキシと通してhttpとhttpsのURLを行ったり来たりするとセッションが切れる
IEは起きないんで、なんでだーとデバッグした。
んでわかりましたよ。3時間後に。
Ethnaでは、$_SERVER['REMOTE_ADDR']をセッションに保存してる。
そんで$_SESSION['REMOTE_ADDR']と$_SERVER['REMOTE_ADDR']を比較して、あんまり違うようだとセッション削除しちゃう。
で、出力してみたら案の定全然違った。
$_SESSION['REMOTE_ADDR']=プロキシのIP
$_SERVER['REMOTE_ADDR']=裸のIP
要は$_SERVER['REMOTE_ADDR']が、httpとhttps間のリダイレクト時に変更してしまっていたのが問題。
どうもこりゃFirefoxの問題臭いってことで、自宅サーバー立てたときにお世話になった確認くん(VIA the UGTOP)で確認してみても、IEとFirefoxでのIPに差は無い。
あったら怖いんだけど。
で、「Firefoxのバグなんでどうしようもないですな、こりゃ」と報告しに行こうとした矢先に見つけました。
Firefoxの管理画面見てたら、SSLは別にプロキシを設定する欄があった。
・・・はぁ。
「すべてのプロトコルで~」をチェックしたら、無事ちゃんと動いたー。
実際問題分かったは良いけど、このチェックなくすとセキュリティは落ちるわけだし、Firefoxの設定をちゃんとすれば通ったしってことで、とりあえずこれはこれで終了。
なんかお客さんからクレーム来た時の為に、覚えておけば良いかな。
分かって良かった。
びびったー。
コメント