2009-01-21 49 views
9

Chúng tôi đang xây dựng một ứng dụng Facebook tại đây tại nơi làm việc, sử dụng phương pháp iframe. Để ứng dụng hoạt động, ứng dụng cần đặt cookie từ bên trong khung nội tuyến.Truy cập cookie của bên thứ ba trong Firefox

Safari có cookie của bên thứ ba bị tắt theo mặc định, vì vậy chúng tôi hiện đang chuyển hướng toàn bộ trình duyệt đến máy chủ, đặt cookie cần thiết để theo dõi phiên và sau đó chuyển hướng lại trang ứng dụng Facebook.

Phương pháp này hoạt động và hoạt động tốt. Trừ khi một người nào đó với Firefox xuất hiện, những người đã vô hiệu hóa các cookie của bên thứ ba theo cách thủ công, vì Firefox mặc định đã kích hoạt chúng. Safari hoạt động vì nó không cho phép bạn đặt cookie từ khung nội tuyến, nhưng bạn có thể đọc chúng. Firefox, mặt khác, không cho phép bạn đọc các cookie, và do đó nó trở thành loại không thể.

Có cách nào để Firefox gửi cookie đến khung nội tuyến trên máy chủ bên ngoài khi cookie của bên thứ ba bị tắt không?

+2

Bạn có nói "chúng tôi cần đặt cookie của bên thứ ba ngay cả khi người dùng đã cấm rõ ràng" không? Điều đó không hoàn toàn hợp pháp với tôi. Có thể bạn có thể hiển thị cảnh báo "cookie của bên thứ ba cần thiết"? – Piskvor

Trả lời

0

Thay vì nhắm mục tiêu trình duyệt, hãy nhắm mục tiêu hành vi.

Đặt cookie và vào lần kiểm tra tải trang tiếp theo cho chúng bằng JS của bạn. Nếu họ không ở đó, hãy đặt chúng bằng phương pháp thay thế.

(Và chắc chắn rằng bạn không kết thúc trong một vòng lặp vô hạn cho người dùng mà không cần cookie)

Edit: Hmm nếu FF không thể đọc chúng mà có thể là một vấn đề. Làm thế nào về việc gửi tất cả mọi người thông qua hệ thống này?

9

Có cách nào để Firefox gửi cookie đến iframe trên máy chủ bên ngoài khi cookie của bên thứ ba bị tắt không?

Không. Và điều đó là tốt. Tắt cookie của bên thứ ba nên tắt chúng.

2

Vâng, nó không gửi hoặc chấp nhận cookie của bên thứ ba khi bạn bỏ chọn cookie của bên thứ ba. Tuy nhiên; hộp kiểm là "Chấp nhận cookie của bên thứ ba", do đó, nó chắc chắn có vẻ như nó vẫn nên/gửi/các tập tin cookie, chỉ cần không chấp nhận bất kỳ những cái mới ... wack.

5

Một kỹ thuật là thực hiện POST nền cho khung nội tuyến ẩn trên tải trang ban đầu bằng JavaScript. Ngay khi trả lời POST thành công, bạn sẽ có thể đặt cookie. Điều này loại bỏ sự cần thiết phải ảnh hưởng đến trải nghiệm người dùng (một quảng cáo xen kẽ để buộc tương tác là một kỹ thuật khác). Một số suy nghĩ và mã mẫu ở đây: http://gist.github.com/586182

+0

Điều này rất hữu ích. Cảm ơn! –

Các vấn đề liên quan