developer tip

Firefox 세션 쿠키

copycodes 2020. 8. 15. 09:25
반응형

Firefox 세션 쿠키


일반적으로 만료 기간이없는 쿠키가 주어지면 최신 브라우저는이 쿠키를 '세션 쿠키'로 간주하고 브라우징 세션이 끝날 때 (일반적으로 브라우저 인스턴스가 닫힐 때) 쿠키를 제거합니다.

IE, Opera, Safari 및 Chrome은 모두이 동작을 지원합니다.

그러나 파이어 폭스 (3.0.9 최신 버전)는 브라우저가 닫히거나 사용자가 로그 오프하거나 OS를 다시 시작할 때 쿠키가 만료되지 않는다는 점에서이 규칙을 따르지 않는 것으로 보입니다.

그렇다면 파이어 폭스는 왜 그것들이 분명히 무기한으로 지속되는 세션 쿠키라고 부르나요?

Firefox가 세션 쿠키 만료를 처리하는 방법을 아는 사람이 있습니까?


이것은 분명히 의도적으로 설계된 것입니다. 이 Bugzilla 버그를 확인하세요 : https://bugzilla.mozilla.org/show_bug.cgi?id=443354

Firefox에는 Firefox를 닫는 기능이 있으며 모든 탭을 저장하고 브라우저를 복원하면 해당 탭이 다시 나타납니다. 이를 세션 복원이라고합니다. 내가 깨닫지 못한 것은 해당 페이지에 대한 모든 세션 쿠키도 복원된다는 것입니다! 브라우저를 닫지 않은 것처럼 취급합니다.

이것은 브라우저가 충돌하면 원래 위치로 바로 돌아갈 수 있지만 세션 쿠키가 지워지는 데 사용되는 웹 개발자에게는 약간 당황스러워한다는 의미에서 의미가 있습니다. 몇 달 전부터 탭에서 열어 본 사이트에서 설정 한 오래된 세션 쿠키가 있습니다.

이를 테스트하려면 브라우저의 모든 탭을 닫은 다음 브라우저를 닫고 다시 시작하십시오. 내가 생각하는 사이트의 세션 쿠키가이 경우에 취소해야한다. 그렇지 않으면 세션 복원을 꺼야합니다.


두 가지 아이디어 :

  1. 세션 관리자 (FF3에 포함 된 것 또는 tabmixplus와 같은 확장에 포함 된 것)에 문제가 있습니다.
  2. Firebug + FireCookie ( https://addons.mozilla.org/en-US/firefox/addon/6683 )를 사용하여 디버깅하십시오!

작동합니다. 나는 쿠키 모듈 테스터 중 하나였으며 이것이 다르게 작동하는 디자인 이유가 없다고 생각합니다 (충돌하는 경우 세션 쿠키 다시 시작할 때 유지되도록 설계 될 수 있습니다 ...)

"기본 설정"메뉴> "개인 정보"탭> "쿠키 표시 ..."버튼에서 쿠키를보고 있습니까?

또한 새 프로필을 사용해 보셨습니까?


이것은 공유 사용자 환경에서 약간의 문제입니다. 세션 종료시 만료되도록 설정된 인증 쿠키를 설정 한 경우. 이는 브라우저를 닫고 다른 사용자가 Firefox를 시작한 후에도 Firefox에서 유지됩니다. 쿠키에는 이유가있어 만료일이 설정되어 있습니다!


위의 meandmycode에 동의하지 않습니다.

HTTP 사양 https://www.ietf.org/rfc/rfc6265.txt 는 클라이언트가 Expires를 사용하여 Set-Cookie 헤더로 수행해야하는 작업에 대해 설명합니다.

서버가 사용자 에이전트가 여러 "세션"(예 : 사용자 에이전트 다시 시작) 동안 쿠키를 유지하기를 원하는 경우 서버는 Expires 속성에 만료 날짜를 지정할 수 있습니다. 사용자 에이전트의 쿠키 저장소가 할당량을 초과하거나 사용자가 서버의 쿠키를 수동으로 삭제하는 경우 사용자 에이전트는 만료일 전에 쿠키를 삭제할 수 있습니다.

이것의 논리적 확장은 브라우저가 종료시 쿠키를 유지하지 않도록 서버가 요구해야하는 유일한 방법은 Expires 값 (예 : 세션 쿠키)을 설정하지 않는 것입니다. 브라우저가 해당 의미를 따르지 않으면 서버의 응답을 따르지 않습니다.

기본적으로 사용자 에이전트는 서버 요청을 무시하고 Expires 값이 설정된 것처럼 작동하기로 결정합니다.


나는 Mozilla가 몇 년 동안 이것을 그대로 두었다는 사실에 당황합니다.

좋아 .. 그래서 FF를 종료하고 PC를 끕니다. 다음날 FF가 시작되고 마지막 페이지 집합을 엽니 다 (편리한 기능). 그러나 세션을 복원하고 "내 설정 저장"기능이없는 사이트에 다시 로그인합니다. 내가 만든 사이트이기 때문에 알고 있습니다. PHP ini 설정으로 무엇을하든 세션이 복원됩니다.

절대 복원해서는 안됩니다. 페이지 예, 그러나 쿠키 ini가 '0'으로 설정된 세션 아니오.

이것이 보안 허점으로 표시되지 않는 이유를 이해할 수 없습니다. 물론 마지막 로그인 시간을 기준으로 로그인을 허용해야하는지 확인하기 위해 서버 측에서 몇 가지 추가 검사를 수행 할 수 있지만 필요하지는 않습니다.

세션은 지속되지 않아야합니다. FF는 쿠키 만료 설정을 조작하고 있습니다.


글쎄, 그것은 나에게 당황 스럽습니다. 내 시스템은 사용자가 EXIT를 눌러 모든 세션 쿠키를 삭제할 수 있도록 설정되어 있습니다. 하지만 사용자가 실제로 종료를 선택하지 않고 브라우저를 닫는 경우 세션 쿠키를 지우고 싶습니다.

실제로 Chrome, IE 9에서 테스트했으며 정상적으로 작동합니다. 그러나 Firefox는이 "세션"(Firebug가보고 한) 쿠키를 죽이는 것을 꺼립니다.

확인. 이것이 내가 한 일입니다. FireFox 주 메뉴에서 종료를 선택했고 그때부터는 예상대로 제대로 수행했습니다 (이유를 모릅니다).

참고 URL : https://stackoverflow.com/questions/777767/firefox-session-cookies

반응형