2011-04-07 3 views
1

사용자가 새 탭에서 링크를 열고 이전 탭을 닫으면 세션이 새 탭에서 계속 활성화됩니다. 이것은 Cross Site Request Forgery의 문제를 야기 할 수 있으며 우리에게 큰 이슈입니다. 언로드 또는 언로드 (여기 http://www.liferay.com/community/forums/-/message_boards/message/2948770에 설명 된대로)를 사용하는 것에 대해 개발자들과 이야기하면서 애플리케이션이 빌드되는 방식 (Java + faces + jboss + tomact)은 매번 로그 아웃 될 때마다 문제가 발생할 것이라고 말했습니다 메뉴를 클릭하십시오. 사용자가 한 페이지에서 다른 페이지로 이동할 때마다 함수가 호출되기 때문입니다.새 브라우저 탭에서 최종 사용자 세션

unload/onload javascript 기능을 사용하지 않고이 문제를 해결할 수있는 방법이 있습니까?

감사

+0

새 탭에서 링크를 여는 것이 CSRF를 어떻게 유발할 수 있는지 알고 싶습니까? –

+0

http://mehmoodbluffs.blogspot.com/2007/10/detecting-browser-event-closing-in.html –

+0

@Suresh 이것을 확인하십시오 (http://en.wikipedia.org/wiki/Cross-site_request_forgery) if 사용자는 로그 아웃하지 않고 로그 아웃하지 않고 탭 (브라우저가 아님)을 닫으면 그의 세션은 여전히 ​​활성 상태이며 하이재킹 될 수 있습니다. 이것은 여전히 ​​클라이언트와 금융 기관에 위험을 초래합니다. – andreas

답변

0

자바 스크립트를 사용하지 않고 페이지를 닫는 사용자를 감지하는 것은 불가능합니다.

그러나 CSRF 토큰을 하나만 저장하는 대신 (예 : 최대 10 개) 여러 개의 CSRF 토큰을 저장하면 사용자에게 친숙합니다. 하나를 사용하면이 중 하나만 무효화되며 새 것이 필요할 때 가장 오래된 것이 삭제됩니다. 이렇게하면 CSRF 보호 기능을 유지하면서 여러 탭에서 작업 할 수 있습니다.

+0

현재 CSRF 토큰 – andreas

+0

을 사용하지 않았 으면 다시 버튼에 문제가 발생하지 않습니까? – andreas

관련 문제