Computer >> 컴퓨터 >  >> 네트워킹 >> 인터넷

Firefox 및 쿠키 손상 문제

Firefox가 기본 브라우저인 Windows를 실행하는 내 컴퓨터 중 하나에 이상한 문제가 발생했습니다. 어느 파란만장한 월요일, 나는 브라우저를 열고 내가 자주 방문하고 사용하는 사이트 중 하나에 갔는데 내가 로그아웃된 것을 알았다. 다른 사이트, 같은 것. 모든 로그인 세션이 사라진 것처럼 보입니다.

모든 것을 여러 번 백업했기 때문에 Firefox 쿠키 데이터베이스인 cookies.sqlite 파일을 Firefox 프로필로 복원했고 정상으로 돌아왔습니다. 며칠 후 문제가 다시 발생했습니다. 흥미롭게도 나는 다소 모호하고 잘 문서화되지 않은 이 문제를 탐구하기 시작했습니다. 이유를 알고 있고 해결책이 있다고 믿습니다.

Firefox 및 쿠키 손상 문제

참고:wikipedia.org에서 가져온 이미지이며 GFDL 1.2에 따라 라이선스가 부여되었습니다.

자세한 문제

온라인 소스는 거의 제공되지 않습니다. Firefox 6에서 유사한 문제에 대한 참조를 찾았고 Quantum(Firefox 57 이상)에 관한 고독한 reddit 게시물을 찾았습니다. 쿠키를 복원하는 방법에 대한 임의의 질문이 많지만 사람들이 경험한 내용에 대한 세부 정보는 많지 않습니다. 일반적으로 기본 모티브는 일반 브라우징 세션 중에 쿠키 데이터베이스가 손상된다는 것입니다. 사람들은 손상된 데이터베이스가 제거되고 새 데이터베이스가 생성되는 다음 브라우저가 시작될 때까지 이를 알아채지 못할 것입니다. 이 두 파일은 모두 cookies.sqlite 및 cookies.sqlite.bak라는 Firefox 프로필에 있습니다. 백업 복사본을 보관하는 경우 데이터베이스를 덮어쓰는 것이 이전 세션 로그인을 복원하는 가장 간단한 방법입니다. 그러나 그것은 우리에게 그 이유에 대한 더 많은 통찰력을 제공하지 않습니다.

정말 왜. 글쎄요, "비정상적"인 한 가지는 이 특별한 경우에 약 18개월 동안 임시 파일 및 쿠키 정리를 수행하지 않았다는 것입니다. 나는 일반적으로 분기에 한 번 정도 그렇게하고 몇 GB 상당의 정크를 플러시하고 대부분의 쿠키를 정리합니다 (중요한 쿠키 유지). Firefox와 Chrome이 정크 누적을 실제로 어떻게 처리하는지 보고 싶습니다.

Firefox 및 쿠키 손상 문제

여담으로 Chrome이 로드된 사이트에서 파비콘을 표시하는 데 시간이 조금 더 걸렸지만 속도 저하, 오류 또는 이상한 동작은 없었습니다. 유일한 실제 문제는 Firefox가 쿠키 전면에 김핑하는 것이었고 이것은 실제 이유 없이 산발적으로 발생했습니다. 나는 찌꺼기를 헹구는 것이 도움이 될 것이라고 생각했습니다.

솔루션

임시 데이터와 쿠키를 정리했습니다(필요한 로그인 제외). 나는 Firefox가 이제 아주 조금 더 빠르게 실행된다는 것을 알아차렸습니다. 작지만 눈에 띄는 성능 향상이었습니다. Chrome은 파비콘도 즉시 제공하고 있었습니다. 결정론적 행동이어야 하는 것은 실제로는 그렇지 않습니다. 브라우저는 임시 데이터의 느린 축적에 영향을 받으며 실제로 영향을 받습니다. 이것은 그 자체로 흥미롭습니다.

Firefox 및 쿠키 손상 문제

Firefox가 현명하다면 이 기사를 작성하기 전에 시스템을 두 달 동안 충분히 실행했습니다. 약 2주 이내에 세 번의 쿠키 데이터베이스 손상 인스턴스가 발생한 후 정리 이후 조용해졌으며 이것이 문제를 해결했다고 100% 확신합니다. 기술적인 추측도 꽤 잘합니다.

Firefox cookies.sqlite 파일에는 크기 제한이 있습니다. 다양한 시스템에서 값이 동일하지 않지만 널리 사용되는 크기는 1,024KB이고 경우에 따라 2,048KB입니다. 이것은 또한 얼마나 많은 쿠키가 데이터베이스에 등록될 수 있는지를 나타냅니다. 이 제한에 도달하면 Firefox는 귀하의 cookies.sqlite가 손상된 것으로 간주하고 제거합니다. 가장 오래된 쿠키나 가장 적게 사용된 쿠키를 제거하거나 데이터베이스 크기를 늘리는 지능형 메커니즘은 없습니다.

이것은 추측이지만 이것이 일어나고 있다고 확신합니다. 해결책은 가끔 브라우저 데이터를 정리하는 것입니다. 나는 꽤 무거운 사용자이므로 의미 있는 목록은 낮은 10에 도달하는 동안 거기에는 수백 또는 수천 개의 쿠키가 있었습니다. 1년에 한 번 또는 8개월에 한 번 정도가 합당한 가정 청소 일정인 것 같습니다.

결론

나는 추측을 싫어하기 때문에 Voodoo 기사는 내가 가장 좋아하는 것이 아닙니다. 소프트웨어 문제는 결정적이어야 하므로 문제를 쉽게 재현하고 보여줄 수 있습니다. 그러나 타이밍과 이벤트 시퀀스의 이상한 조합으로 나타나는 경합 상태와 마찬가지로 이와 같은 것은 솔루션 메커니즘이 명백하더라도 복제하기 어렵습니다.

어쨌든 Firefox를 실행 중이고 로그인 세션(쿠키)이 삭제된 경우 백업에서 복원(예, 하나 유지)한 다음 순서대로 정리하여 필요하지 않은 항목을 제거하고 최소한의 항목만 유지하는 것이 좋습니다. 공통 로그인을 위한 쿠키 세트. 때로는 까다로울 수 있지만 수동으로 청소하거나 유지 관리 도구를 사용할 수 있지만 완전히 다른 이야기입니다. 아무튼 오늘은 여기까지 하겠습니다. 그렇지 않기 때문에 Captain Obvious라고 말하지 마십시오. 나중에 보자.

건배.