2012-06-19 3 views
4

로그인하면 내 Symfony2 응용 프로그램이 내 PHPSESSID 쿠키를 바꿉니다. 예상되는 동작입니까? 나에게 아무 의미가 없다 ... 왜 같은 것을 유지하지 않는가? PHPSESSID?로그인시 Symfony2가 PHPSESSID를 대체하는 이유는 무엇입니까?

다음은 좀 더 자세히 설명합니다.

내가 처음 내 응용 프로그램을 안타 URL에 요청을해야합니다, 내 응용 프로그램에 로그인하려면 : 나는 다른 URL ( /login)로 리디렉션하고 PHPSESSID 쿠키를 제공하고 있습니다

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

. 벌금. 그런 다음 POST ~ /login_check과 같은 것이 _username=blah&_password=blah이고 적절한 자격 증명을 제공하는지 여부에 따라 다른 PHPSESSID 쿠키가 전송됩니다. 대부분의 무엇이든이 첫 번째 요청 작동처럼

보인다,하지만 난 (난 그냥 POST/login_check 및 로그인 할 수 없음) 일부 요청을해야합니다. 이 예상되는 동작입니까?

중요한지 모르지만 FOSUserBundle을 사용하고 있습니다.

로드 밸런서 뒤의 두 웹 서버에 내 애플리케이션을 넣고로드 밸런서에게 PHPSESSID을 기반으로 한 끈적 거리기를 사용하기 전까지는 아무런 문제가 없다고 생각합니다. 상상할 수 있듯이 PHPSESSID 대체 동작으로 인해 클라이언트가 다른 웹 서버로 반송되는 경우 로그인이 작동하지 않습니다.

가능한 중복 : Symfony2: login does not work on first try after clearing cookies

답변

8

session fixation을 방지하는 것입니다. 나는 loadbalancing을 위해 다른 쿠키를 세션 1에 권고 할 것이다.

+0

당신이 정교하게됩니다

이것은 또한 여기에 대한 내 문제, 지원 로케일과 관련이있을 수 있습니까? 더 나은 옵션은 무엇일까요? 로드 균형 조정기는 HTTPS 트래픽 (웹 서버를 해독 한 다음 다시 암호화 함) 만 허용하기 때문에 세션 고정 (쿠키 하이재킹?)은 아마 우리 환경에서는 무의미합니다. PHPSESSID가 쿼리 문자열에없는 한. –

+2

뭐라고 요? 그 위키 페이지를 더 자세히 작성하길 원하십니까? 음, 예, 사람들은 항상 브라우저를 잘못 구성합니다. 다른 악의적 인 도메인 _에서 _ 도메인 _ 도메인의 쿠키를 수락하고, 다른 사이트의 도메인에 양식을 게시하도록 속여서 URL의 '이상한'값이있는 링크를 클릭하십시오. 하나 : 당신이 정말로 그것을 방지하기 위해 몇 가지 예방 조치를 취하고 싶습니다 : 그러나 세션 쿠키를 식별자로 사용하기를 주장한다면, 당신은 항상 동일한 서버에서 끝나고 세션 ID를 세션 ID로 생성 할 수 있습니다. – Wrikken

+0

알았어, 친구 가져와. :) 유용한 위키 페이지 야. 고마워! 다음은 내가 염두에두고 있던 일종의 정교함입니다. (1)로드 밸런서를 다르게 구성 할 수 있는지 확인하십시오 (2) http://stackoverflow.com/questions/10801916/ssl-and-session-hijacking-fixation. 로드 균형 조정기 (Amazon Elastic Load Balancer)가 끈적 거리기 위해 [세션] 쿠키를 제공하며, 이는 정상적으로 작동하는 것으로 보입니다. –

1

이것은 버그 일 수 있습니다. 세션에서 무언가를 읽으려고 시도하거나 SessionListener가 아직 호출되지 않았을 때 세션 식별자를 얻으 려한다면 symfony2.0에서 새로운 세션이 다른 PHPSESSID로 시작된다는 것을 알 수 있습니다. https://github.com/symfony/symfony/issues/3662

관련 문제