4

私のSymfony2アプリケーションは、PHPSESSIDログイン時にCookieを置き換えます。これは予想される動作ですか?それは私には意味がありません...なぜ同じままにしないのPHPSESSIDですか?

ここにもう少し詳細があります。

アプリケーションにログインするには、最初にアプリにアクセスするURLにリクエストを送信する必要があります。

$ telnet myapp 80
GET / HTTP/1.1
Host: myapp

別のURL()にリダイレクトされ、 Cookie/loginが与えられます。PHPSESSID罰金。次に、のようなものにPOST移動し/login_checkます。_username=blah&_password=blah適切な資格情報を提供するかどうかに関係なく、別のPHPSESSIDCookieが送信されます。

この最初のリクエストではほとんどすべてが機能するようですが、何らかのリクエストを行う必要があります(ログインしてログインすることはできませんPOST/login_check。これは予想される動作ですか?

重要かどうかはわかりませんが、FOSUserBundleを使用しています。

ロードバランサーの背後にある2つのWebサーバーにアプリケーションを配置し、に基づいてスティッキネスを使用するようにロードバランサーに指示するまで、これは重要ではないと思いますPHPSESSID。ご想像のとおりPHPSESSID、クライアントが他のWebサーバーにバウンスした場合、置換動作によりログインが機能しなくなります。

重複の可能性:Symfony2:Cookieをクリアした後の最初の試行でログインが機能しない

4

2 に答える 2

8

セッション固定を防ぐためです。別のCookieをアドバイスし、次にセッション1のCookieを負荷分散することをお勧めします。

于 2012-06-19T00:08:21.770 に答える
1

これはバグである可能性があります。symfony2.0の場合、セッションから何かを読み取ろうとしたり、SessionListenerがまだ呼び出されていないときにセッション識別子を取得しようとしたりすると、新しいセッションが別のPHPSESSIDで開始されていることがわかります。

これはロケールのサポートにも関連している可能性があります。これに関する私の問題は次のとおりです:https ://github.com/symfony/symfony/issues/3662

于 2012-06-20T06:06:14.140 に答える