2010-07-12 2 views
1

Gmail, Hotmail, Facebook 등이 정확히 다음 시나리오를 처리하는 방법을 아는 사람이 있는지 궁금합니다. (참고 : 쿠키를 가정하면 탭간에 공유됩니다)동일한 기계 및 브라우저에서 여러 계정 로그인을 처리하는 올바른 방법은 무엇입니까?

  1. 응용 프로그램에 두 개의 로그인 페이지를 엽니 다.
  2. 사용자 1은 도메인에 로그인합니다.
  3. 사용자 1은 일부 데이터를 저장하지 않고 변경합니다.
  4. 사용자 2는 별도의 탭에서 도메인에 로그인합니다.
  5. 사용자 1이 자신의 탭으로 다시 전환하여 데이터를 저장합니다.

내가 Gmail에 대한 단계 FF를 반복 시도는 때때로 "다른 사용자가 같은 브라우저에서 로그인했기 때문에 자동으로 일어날 수있다" 저를 제공하고 밖으로 자동으로 이전 사용자를 기록 "하지만 다른 시간 다만 쇼 "페이지가 제대로 리디렉션되지 않습니다."쿠키를 지워야합니다.

Hotmail이 바로 첫 페이지에 로그인되어 있고 계정을 전환하고 싶습니다. 계정을 전환하고 데이터를 저장하려고 다시 시도하면 hotmail에서 로그인 오류 메시지가 표시됩니다.

누구나이 문제를 해결하는 가장 좋은 방법은 무엇인지뿐만 아니라 각 방법이 구현되는 방법에 대해 설명 할 수 있습니다.

답변

1

일반적으로 이러한 문제를 해결하기 위해 쿠키와 다른 제출 된 데이터의 ID에 대한 상호 참조를 원할 것입니다. 따라서 제출 된 양식에는 사용자 ID가 포함되며 쿠키에는 사용자 세션이 포함됩니다. 일치하지 않는 경우 시도를 거부하고 세션을 무효화하고 사용자에게 로그인하도록 보냅니다.

양식에 CSRF 보호 토큰이 있으면 CSRF 토큰도 사용자 ID를 인코딩 할 수 있으므로 양식의 유효하지 않은 CSRF 토큰으로 인해 사용자 1의 데이터 저장 시도가 실패합니다.

+0

승인 된 읽기 (로그 아웃시 무효화) 만 허용하는 일반 인증 쿠키와 쓰기 (권한 부여와 연결되어야 함)에 대한 CSRF 토큰은 대부분의 사이트가 작동하는 방식입니다. 일부는 승인이 유일한 브라우저 쿠키 인 로그 아웃 된 세션에 대해서도 동등한 권한을 갖습니다. – daaku

관련 문제