Cookie phiên Firefox


105

Nói chung, khi được cung cấp một cookie không có thời gian hết hạn, các trình duyệt hiện đại sẽ coi cookie này là 'cookie phiên', chúng sẽ xóa cookie vào cuối phiên duyệt (thường là khi phiên bản trình duyệt đóng lại).

IE, Opera, Safari và Chrome đều hỗ trợ hành vi này.

Tuy nhiên firefox (bản phát hành thích hợp mới nhất 3.0.9) dường như không tuân theo quy tắc này, từ những gì tôi có thể cho biết nó không hết hạn cookie khi trình duyệt bị đóng hoặc khi người dùng đăng xuất hoặc khởi động lại hệ điều hành ..

Vì vậy, tại sao firefox lại gọi chúng là cookie phiên, khi chúng tồn tại vô thời hạn?

Có ai biết cách Firefox xử lý việc hết hạn cookie phiên không?


1
Tôi không nghĩ rằng điều này thực sự đã được trả lời. Tôi cũng đang nhìn thấy điều này.
bhollis

Cảm ơn BRH cho nghiên cứu của bạn, tôi thực sự đã thấy câu trả lời của bạn và có ý định kiểm tra nghiên cứu của bạn trước khi đánh dấu câu trả lời của bạn, hoàn toàn quên! lời xin lỗi
mandmycode

Câu trả lời:


116

Điều này rõ ràng là do thiết kế. Kiểm tra lỗi Bugzilla này: https://bugzilla.mozilla.org/show_bug.cgi?id=443354

Firefox có một tính năng trong đó bạn đóng Firefox và nó cung cấp lưu tất cả các tab của bạn, sau đó bạn khôi phục trình duyệt và các tab đó quay trở lại. Đó được gọi là khôi phục phiên. Điều tôi không nhận ra là nó cũng sẽ khôi phục tất cả cookie phiên cho các trang đó! Nó đối xử với nó như thể bạn chưa bao giờ đóng trình duyệt.

Điều này có ý nghĩa theo nghĩa là nếu trình duyệt của bạn gặp sự cố, bạn sẽ quay trở lại vị trí cũ của bạn, nhưng hơi khó chịu đối với các nhà phát triển web quen với việc cookie phiên bị xóa. Tôi có một số cookie phiên cũ từ nhiều tháng trước được đặt bởi các trang web mà tôi luôn mở trong các tab.

Để kiểm tra điều này, hãy đóng tất cả các tab trong trình duyệt của bạn, sau đó đóng trình duyệt và khởi động lại. Tôi nghĩ rằng cookie phiên cho trang web của bạn sẽ rõ ràng trong trường hợp đó. Nếu không, bạn phải tắt khôi phục phiên.


1
Tôi thấy hành vi này khá đáng nghi vấn, cảm ơn vì nghiên cứu của bạn. Nếu "Lưu và thoát" được chọn hoặc "Khôi phục tab và cửa sổ", khi đóng trình duyệt, tất cả cookie phiên vẫn còn nguyên. Cách duy nhất để "người dùng" loại bỏ chúng là trước tiên hãy đóng (các) tab và sau đó đóng trình duyệt.
đánh dấu

Bạn đã bao giờ tìm ra cách giải quyết chưa? Tôi thực sự không muốn Firefox đào các phiên cũ vì tôi cần ID phiên trong ứng dụng của mình là duy nhất.
ArjanP

Xin lỗi, tôi không biết cách giải quyết khác. Từ góc độ ứng dụng của bạn, trình duyệt của họ không bao giờ đóng.
bhollis

6
Tôi đã ghi nhận một số tác động của quyết định này (do IMO không thông báo): mrclay.org/index.php/2010/05/02/…
Steve Clay

Hôm nay tôi cũng bị hành vi này cắn. Tôi nghĩ rằng có điều gì đó không ổn với ứng dụng của mình. Sau đó, tôi đã kiểm tra Chrome và các trình duyệt khác, sau đó phát hiện ra firefox là thủ phạm.
Dingle


3

Điều này sẽ hoạt động. Tôi đã từng là một trong những người kiểm tra mô-đun cookie và tôi không nghĩ có bất kỳ lý do thiết kế nào khiến điều này hoạt động khác đi (mặc dù nếu bạn gặp sự cố, cookie phiên có thể được thiết kế để hoạt động khi bạn khởi động lại ...)

Bạn có đang xem các cookie trong menu "Tùy chọn"> Tab "Bảo mật"> nút "Hiển thị Cookie ..." không?

Ngoài ra, bạn đã thử một hồ sơ mới chưa?


Rất lạ, tôi tương đối vui nếu đây chỉ là một lỗi với hai hệ thống mà tôi đã thử nghiệm .. Tôi đã xem các cookie và chúng vẫn tồn tại bất cứ thứ gì .. và chúng hoàn toàn được firefox phân loại là cookie phiên .. the tùy chọn duy nhất mà tôi từng thay đổi trong firefox là tắt và bật javascript .. các plugin đã cài đặt của tôi là firebug và thanh công cụ dành cho nhà phát triển web .. à cũng được.
mã của bạn

Ngoài ra còn có nhiều tùy chọn mô-đun cookie, nhưng tôi không nhớ bất kỳ tùy chọn nào trong số chúng có loại chức năng này. FF3 đã chuyển từ tệp văn bản sang cơ sở dữ liệu cookie, có thể cơ sở dữ liệu của bạn đã hoạt động sai.
ghế tập cơ bắp

2

Tôi không đồng ý với mã số ở trên.

Thông số HTTP https://www.ietf.org/rfc/rfc6265.txt nói về những gì khách hàng nên làm với tiêu đề Set-Cookie có Expires:

Nếu máy chủ muốn tác nhân người dùng duy trì cookie qua nhiều "phiên" (ví dụ: tác nhân người dùng khởi động lại), máy chủ có thể chỉ định ngày hết hạn trong thuộc tính Expires. Lưu ý rằng tác nhân người dùng có thể xóa cookie trước ngày hết hạn nếu kho lưu trữ cookie của tác nhân người dùng vượt quá hạn ngạch hoặc nếu người dùng xóa cookie của máy chủ theo cách thủ công.

Phần mở rộng hợp lý của điều này là cách DUY NHẤT mà máy chủ phải yêu cầu trình duyệt không duy trì Cookie khi thoát là không đặt giá trị Expires (tức là cookie phiên). Nếu một trình duyệt không tôn trọng ngữ nghĩa đó thì nó không tôn trọng phản hồi của máy chủ.

Về cơ bản, tác nhân người dùng quyết định bỏ qua yêu cầu máy chủ và hành động như thể giá trị Expires đã được đặt.


1

Đây là một điều đáng lo ngại trong môi trường người dùng chia sẻ. Nếu tôi đặt một cookie xác thực được đặt thành hết hạn vào cuối phiên. Điều này sẽ vẫn tồn tại trong Firefox sau khi trình duyệt đã bị đóng và một người dùng khác khởi động Firefox. Cookie được đặt với ngày hết hạn là có lý do!


1
Vâng, công bằng mà nói, "Cookie được đặt với ngày hết hạn là có lý do" - trong trường hợp này, bạn không đặt ngày hết hạn, do đó, trình duyệt quyết định xem cookie đó tồn tại trong bao lâu.
mã số

0

Tôi cảm thấy bối rối khi Mozilla đã để nó như vậy trong vài năm.

OK .. vì vậy tôi thoát FF và tắt PC. Ngày hôm sau FF khởi động và mở tập trang cuối cùng (tính năng tiện dụng) NHƯNG nó khôi phục các phiên và tôi đăng nhập lại vào các trang không có tính năng "lưu cài đặt của tôi". Tôi biết vì chúng là những trang web tôi đã xây dựng. Bất cứ điều gì tôi làm với cài đặt php ini, các phiên được khôi phục.

Chúng hoàn toàn không nên được khôi phục. Các trang có, nhưng các phiên có ini cookie được đặt thành '0' thì không.

Tôi không hiểu tại sao điều này không được gắn cờ là lỗ hổng bảo mật. Chắc chắn tôi có thể thực hiện một số kiểm tra bổ sung ở phía máy chủ, để xem liệu có nên cho phép đăng nhập hay không, dựa trên thời gian kể từ lần đăng nhập cuối cùng, nhưng không cần thiết.

Một phiên KHÔNG nên kéo dài. FF đang thao tác cài đặt hết hạn cookie.


-1

Nó làm tôi khó chịu. Hệ thống của tôi được thiết lập để người dùng có thể nhấn EXIT, nhờ đó tôi hủy tất cả cookie phiên. Nhưng nếu người dùng đóng trình duyệt mà không thực sự chọn Thoát, tôi muốn xóa cookie phiên.

Tôi thực sự đã thử nghiệm nó với Google Chrome, IE 9 và hoạt động tốt. Nhưng Firefox miễn cưỡng giết cookie "phiên" này (theo báo cáo của Firebug).

ĐỒNG Ý. Đây là những gì tôi đã làm. Tôi đã chọn Thoát từ menu chính của FireFox và từ đó trở đi, nó hoạt động tốt như mong đợi (Không biết tại sao).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.