为什么Symfony2在登录时会替换PHPSESSID?

Ada*_*sen 4 php http symfony

我的Symfony2应用程序在我PHPSESSID登录时替换了我的cookie.这是预期的行为吗?这对我没有意义......为什么不保持不变PHPSESSID

这里有一些细节.

要登录我的应用程序,我必须首先向访问我的应用程序的URL发出请求:

$ telnet myapp 80
GET / HTTP/1.1
Host: myapp
Run Code Online (Sandbox Code Playgroud)

我被重定向到另一个URL(/login)并给了一个PHPSESSIDcookie.精细.然后我POST就会/login_check这样_username=blah&_password=blah,无论我是否提供正确的凭据,我都会发送一个不同的PHPSESSIDcookie.

好像任何东西,可以使用本第一要求,但我必须做出一些要求(我不能只POST/login_check和登录).这是预期的行为吗?

不确定是否重要,但我正在使用FOSUserBundle.

我想我应该提一下,除非我将我的应用程序放在负载均衡器后面的两个Web服务器上,并且告诉负载均衡器使用基于的粘性,否则这一切都不重要PHPSESSID.正如您可能想象的那样,PHPSESSID如果客户端碰巧跳转到其他Web服务器,则替换行为会阻止登录工作.

可能重复:Symfony2:清除cookie后首次尝试登录无效

Wri*_*ken 8

这是为了防止会话固定.我会建议另一个cookie然后会话一个负载平衡.

  • 等什么?你想让我详细说明_more_然后那个维基页面?嗯,是的,人们总是错误配置浏览器(从_another evil domain_接受_your_域的cookie,被欺骗从其他网站向你的域发布表单,点击网址中带有'怪异'值的链接.相信我这个一:你真的想采取一些预防措施来防止它.但是:如果你坚持使用会话cookie作为标识符,你总是可以自己生成一个id,最终会在同一台服务器上并将其提供给`session_id`. (2认同)