Tôi đã làm cho nó hoạt động, nhưng giải pháp hơi phức tạp, vì vậy hãy chịu đựng tôi.
Chuyện gì đang xảy ra
Như vậy, Internet Explorer cung cấp mức độ tin cậy thấp hơn cho các trang IFRAME (IE gọi đây là nội dung "bên thứ ba"). Nếu trang bên trong IFRAME không có Chính sách quyền riêng tư, cookie của nó sẽ bị chặn (được biểu thị bằng biểu tượng con mắt trên thanh trạng thái, khi bạn nhấp vào nó, nó sẽ hiển thị cho bạn danh sách các URL bị chặn).
(nguồn: piskvor.org )
Trong trường hợp này, khi cookie bị chặn, số nhận dạng phiên không được gửi và tập lệnh đích sẽ xuất hiện lỗi 'không tìm thấy phiên'.
(Tôi đã thử đặt định danh phiên vào biểu mẫu và tải nó từ các biến POST. Điều này sẽ có hiệu quả , nhưng vì lý do chính trị, tôi không thể làm điều đó.)
Có thể làm cho trang bên trong IFRAME trở nên đáng tin cậy hơn: nếu trang bên trong gửi tiêu đề P3P với chính sách bảo mật được IE chấp nhận, cookie sẽ được chấp nhận .
Làm thế nào để giải quyết nó
Tạo chính sách p3p
Một điểm khởi đầu tốt là hướng dẫn W3C . Tôi đã xem qua nó, đã tải xuống Trình soạn thảo chính sách bảo mật của IBM và ở đó tôi đã tạo ra một đại diện cho chính sách quyền riêng tư và đặt tên cho nó để tham chiếu nó (ở đây là policy1
).
LƯU Ý : tại thời điểm này, bạn thực sự cần tìm hiểu xem trang web của bạn có chính sách bảo mật hay không, và nếu không, hãy tạo nó - liệu nó có thu thập dữ liệu người dùng, loại dữ liệu nào, nó làm gì với nó, ai có quyền truy cập vào nó không, vv Bạn cần tìm thông tin này và suy nghĩ về nó. Chỉ cần vỗ vào nhau một vài thẻ sẽ không cắt nó. Bước này không thể được thực hiện hoàn toàn trong phần mềm và có thể mang tính chính trị cao (ví dụ: "chúng ta có nên bán số liệu thống kê nhấp chuột không?").
(ví dụ: "trang web được điều hành bởi ACME Ltd., nó sử dụng định danh ẩn danh mỗi phiên cho hoạt động của nó, chỉ thu thập dữ liệu người dùng nếu được phép rõ ràng và chỉ cho các mục đích sau, dữ liệu chỉ được lưu trữ miễn là cần thiết, chỉ công ty chúng tôi có quyền truy cập vào nó, v.v. ").
(Khi chỉnh sửa bằng công cụ này, có thể xem lỗi / thiếu sót trong chính sách. Cũng rất hữu ích là tab "Chính sách HTML": ở phía dưới, nó có "Đánh giá chính sách" - kiểm tra nhanh xem chính sách có bị chặn không bởi cài đặt mặc định của IE)
Trình chỉnh sửa xuất thành tệp .p3p, là biểu diễn XML của chính sách trên. Ngoài ra, nó có thể xuất một "phiên bản nhỏ gọn" của chính sách này.
Liên kết với chính sách
Sau đó, cần có tệp Tham chiếu Chính sách ( http://example.com/w3c/p3p.xml
) (chỉ mục các chính sách quyền riêng tư mà trang web sử dụng):
<META>
<POLICY-REFERENCES>
<POLICY-REF about="/w3c/example-com.p3p#policy1">
<INCLUDE>/</INCLUDE>
<COOKIE-INCLUDE/>
</POLICY-REF>
</POLICY-REFERENCES>
</META>
Các <INCLUDE>
chương trình tất cả các URI mà sẽ sử dụng chính sách này (trong trường hợp của tôi, toàn bộ trang web). Tệp chính sách tôi đã xuất từ Trình chỉnh sửa đã được tải lênhttp://example.com/w3c/example-com.p3p
Gửi tiêu đề nhỏ gọn với phản hồi
Tôi đã đặt máy chủ web tại example.com để gửi tiêu đề nhỏ gọn với các phản hồi, như thế này:
HTTP/1.1 200 OK
P3P: policyref="/w3c/p3p.xml", CP="IDC DSP COR IVAi IVDi OUR TST"
// ... other headers and content
policyref
là một URI tương đối cho tệp Tham chiếu Chính sách (lần lượt tham chiếu các chính sách bảo mật), CP
là biểu diễn chính sách nhỏ gọn. Lưu ý rằng sự kết hợp của các tiêu đề P3P trong ví dụ có thể không áp dụng được trên trang web cụ thể của bạn; tiêu đề P3P của bạn PHẢI thể hiện chính xác chính sách bảo mật của riêng bạn!
Lợi nhuận!
Trong cấu hình này, Evil Eye không xuất hiện, cookie được lưu ngay cả trong IFRAME và ứng dụng hoạt động.
Chỉnh sửa: Những gì KHÔNG nên làm, trừ khi bạn thích bảo vệ khỏi các vụ kiện
Một số người đã đề xuất "chỉ cần đưa một số thẻ vào tiêu đề P3P của bạn, cho đến khi Evil Eye từ bỏ".
Các thẻ không chỉ là một loạt các bit, chúng có ý nghĩa trong thế giới thực và việc sử dụng chúng mang lại cho bạn trách nhiệm trong thế giới thực !
Ví dụ: giả vờ rằng bạn không bao giờ thu thập dữ liệu người dùng có thể khiến trình duyệt hài lòng, nhưng nếu bạn thực sự thu thập dữ liệu người dùng, P3P đang mâu thuẫn với thực tế. Rõ ràng và đơn giản, bạn cố tình nói dối người dùng của mình và đó có thể là hành vi tội phạm ở một số quốc gia. Như trong "đi tù, không thu 200 đô la".
Một vài ví dụ ( xem p3pwriter để biết toàn bộ thẻ ):
- NOI : "Trang web không thu thập dữ liệu được xác định." (ngay khi có bất kỳ tùy chỉnh, đăng nhập hoặc bất kỳ bộ sưu tập dữ liệu nào (***** Analytics, bất cứ ai?), bạn phải thừa nhận nó trong P3P của bạn)
- STP : Thông tin được giữ lại để đáp ứng mục đích đã nêu. Điều này đòi hỏi thông tin phải được loại bỏ trong thời gian sớm nhất có thể. Các trang web PHẢI có chính sách duy trì để thiết lập bảng thời gian hủy. Chính sách duy trì PHẢI được đưa vào hoặc liên kết từ chính sách quyền riêng tư có thể đọc được của con người. "(Vì vậy, nếu bạn gửi
STP
nhưng không có chính sách duy trì, bạn có thể phạm tội lừa đảo. Điều đó tuyệt vời đến mức nào?
Tôi không phải là luật sư, nhưng tôi không sẵn sàng ra tòa để xem liệu tiêu đề P3P có thực sự ràng buộc về mặt pháp lý hay nếu bạn có thể hứa với người dùng của mình bất cứ điều gì mà không thực sự sẵn sàng thực hiện lời hứa của mình.