Computer >> Hướng Dẫn Máy Tính >  >> Kết Nối Mạng >> Internet

Khắc phục lỗi hỏng Cookie Firefox: Khôi phục đăng nhập và phiên làm việc trên Windows

Một vấn đề lạ đã xảy ra trên một trong những máy tính chạy Windows của tôi, với Firefox là trình duyệt mặc định, sử dụng một hồ sơ đã tồn tại hơn một thập kỷ. Một thứ Hai "xanh" nào đó, tôi mở trình duyệt, truy cập vào một trang web thường xuyên ghé thăm và nhận thấy mình đã bị đăng xuất. Trang web khác, tình huống tương tự. Tất cả các phiên đăng nhập dường như đã biến mất.

Vì tôi luôn giữ nhiều bản sao lưu cho mọi thứ, tôi đã khôi phục cơ sở dữ liệu cookie của Firefox – file cookies.sqlite – vào hồ sơ Firefox, và mọi thứ quay lại bình thường. Vài ngày sau, vấn đề lại xảy ra. Được khơi gợi, tôi bắt đầu tìm hiểu vấn đề này hơi kín đáo và ít được ghi chép. Tôi tin rằng mình đã tìm ra nguyên nhân và có giải pháp.

Khắc phục lỗi hỏng Cookie Firefox: Khôi phục đăng nhập và phiên làm việc trên Windows

Lưu ý: Hình ảnh lấy từ wikipedia.org, cấp phép dưới GFDL 1.2.

Chi tiết vấn đề

Nguồn trực tuyến cung cấp rất ít thông tin. Tôi tìm thấy một tham chiếu về vấn đề tương tự từ thời Firefox 6, và một bài đăng đơn lẻ trên Reddit về Quantum (Firefox 57 trở lên). Nhiều câu hỏi ngẫu nhiên về cách khôi phục cookie, nhưng ít chi tiết về những gì người dùng trải nghiệm. Nói chung, chủ đề cốt lõi là trong một phiên duyệt web bình thường, cơ sở dữ liệu cookie sẽ bị hỏng. Người dùng không nhận ra cho đến lần khởi động trình duyệt tiếp theo, khi cơ sở dữ liệu hỏng bị xóa và một cái mới được tạo. Cả hai file đều nằm trong hồ sơ Firefox, tên là cookies.sqlite và cookies.sqlite.bak. Nếu bạn giữ bản sao lưu, ghi đè cơ sở dữ liệu là cách đơn giản nhất để khôi phục các phiên đăng nhập cũ. Nhưng điều đó không cho chúng ta hiểu thêm về nguyên nhân.

Thực sự nguyên nhân là gì? Vâng, điều "bất thường" duy nhất trong trường hợp này là tôi đã không dọn dẹp file tạm và cookie trong khoảng 18 tháng. Thông thường tôi làm điều này mỗi quý, xóa vài GB rác và dọn hầu hết cookie (giữ lại những cái quan trọng). Để xem Firefox và Chrome thực sự xử lý tích lũy rác như thế nào, tôi để mọi thứ nguyên vẹn.

Khắc phục lỗi hỏng Cookie Firefox: Khôi phục đăng nhập và phiên làm việc trên Windows

Về mặt phụ, tôi nhận thấy Chrome mất nhiều thời gian hơn một chút để hiển thị favicon trên các trang đã tải, nhưng không có hiện tượng chậm, lỗi, hay hành vi kỳ lạ nào. Vấn đề thực sự chỉ là Firefox bị giật mình về mặt cookie, và điều này xảy ra thất thường, không có lý do rõ ràng. Tôi đoán việc "rửa sạch" rác có thể giúp ích.

Giải pháp

Tôi đã dọn dẹp dữ liệu tạm và cookie (trừ các đăng nhập cần thiết). Tôi nhận thấy Firefox giờ chạy nhanh hơn một chút – cải thiện hiệu suất nhỏ nhưng dễ nhận thấy. Chrome cũng phục vụ favicon ngay lập tức. Những gì nên là hành vi xác định thực sự không phải vậy. Các trình duyệt bị ảnh hưởng bởi sự tích lũy chậm của dữ liệu tạm, và nó có tác động đến chúng. Điều này bản thân nó đã thú vị.

Khắc phục lỗi hỏng Cookie Firefox: Khôi phục đăng nhập và phiên làm việc trên Windows

Về Firefox, tôi để hệ thống chạy thêm hai tháng tốt trước khi viết bài này. Sau ba lần hỏng cơ sở dữ liệu cookie trong khoảng hai tuần, mọi thứ đã ổn định kể từ khi dọn dẹp, và tôi tin 100% rằng điều này đã giải quyết vấn đề. Tôi thậm chí còn có một phỏng đoán kỹ thuật khá tốt.

File cookies.sqlite của Firefox có giới hạn kích thước. Tôi nhận thấy giá trị này không giống hệt nhau trên các hệ thống khác nhau, nhưng kích thước phổ biến là 1.024 KB, và đôi khi 2.048 KB. Điều này cũng quyết định số lượng cookie có thể đăng ký vào cơ sở dữ liệu. Nếu bạn chạm đến giới hạn này, Firefox sẽ coi cookies.sqlite của bạn là hỏng và xóa nó. Không có cơ chế thông minh nào sẽ xóa cookie cũ nhất hoặc ít dùng nhất, hoặc cố gắng tăng kích thước cơ sở dữ liệu.

Đây là một phỏng đoán, nhưng tôi khá tự tin đây là những gì đang xảy ra. Và giải pháp là dọn dẹp dữ liệu trình duyệt một lần một thời gian. Tôi là người dùng nặng, nên có hàng trăm thậm chí hàng nghìn cookie, trong khi danh sách có ý nghĩa chỉ chạy vào chục thấp. Một lần mỗi năm hoặc 8 tháng dường như là lịch trình vệ sinh hợp lý.

Kết luận

Các bài viết "voodoo" (dựa trên phỏng đoán) không bao giờ là sở thích của tôi, vì tôi ghét việc đoán mò. Vấn đề phần mềm nên mang tính xác định, để bạn có thể dễ dàng tái hiện và chứng minh vấn đề. Nhưng giống như điều kiện tranh chấp (race conditions), biểu hiện theo những tổ hợp kỳ lạ của thời gian và trình tự sự kiện, thứ như này khó tái hiện, ngay cả khi cơ chế giải pháp hiển nhiên.

Dù sao, nếu bạn đang chạy Firefox và bị xóa phiên đăng nhập (cookie), gợi ý của tôi là khôi phục từ bản sao lưu (hãy giữ một bản, nhé) và sau đó thực hiện dọn dẹp có tổ chức, xóa những gì bạn không cần và chỉ giữ tập hợp tối thiểu cookie cho các đăng nhập phổ biến. Bạn có thể dọn thủ công hoặc dùng công cụ bảo trì, mặc dù chúng đôi khi hơi rắc rối, nhưng đó là một câu chuyện hoàn toàn khác. Thôi, đến đây thôi cho hôm nay. Đừng nói "Captain Obvious" (người nói rõ ràng), vì nó không phải vậy. Tạm biệt.

Cheers.