Mam to do pracy, ale rozwiązanie jest trochę skomplikowane, więc proszę o wyrozumiałość.
Co się dzieje
W tej chwili Internet Explorer zapewnia niższy poziom zaufania stronom IFRAME (IE nazywa tę treść „strony trzeciej”). Jeśli strona w ramce IFRAME nie ma Polityki prywatności, jej pliki cookie są blokowane (co wskazuje ikona oka na pasku stanu, po kliknięciu wyświetla listę zablokowanych adresów URL).
(źródło: piskvor.org )
W takim przypadku, gdy pliki cookie są blokowane, identyfikator sesji nie jest wysyłany, a skrypt docelowy zgłasza błąd „nie znaleziono sesji”.
(Próbowałem ustawić identyfikator sesji w formularzu i załadować go ze zmiennych POST. To by działało , ale z powodów politycznych nie mogłem tego zrobić).
Możliwe jest zwiększenie zaufania strony w ramce IFRAME: jeśli strona wewnętrzna wyśle nagłówek P3P z polityką prywatności akceptowaną przez IE, pliki cookie zostaną zaakceptowane .
Jak to rozwiązać
Utwórz zasadę p3p
Dobrym punktem wyjścia jest samouczek W3C . Przeszedłem przez to, pobrałem edytor polityki prywatności IBM i tam stworzyłem reprezentację polityki prywatności i nadałem jej nazwę, do której można się odwoływać (tutaj była policy1
).
UWAGA : w tym momencie faktycznie musisz dowiedzieć się, czy Twoja witryna ma politykę prywatności, a jeśli nie, utwórz ją - czy gromadzi dane użytkownika, jakie dane, co z nią robi, kto ma do niej dostęp, itp. Musisz znaleźć te informacje i przemyśleć je. Samo uderzenie w kilka tagów nie spowoduje ich odcięcia. Ten krok nie może być wykonany wyłącznie w oprogramowaniu i może być wysoce polityczny (np. „Czy powinniśmy sprzedawać nasze statystyki kliknięć?”).
(np. „strona jest obsługiwana przez ACME Ltd., do jej działania używa anonimowych identyfikatorów poszczególnych sesji, gromadzi dane użytkownika tylko, jeśli jest to wyraźnie dozwolone i tylko w następujących celach, dane są przechowywane tylko tak długo, jak to konieczne, tylko nasza firma ma do niego dostęp itp. ”).
(Podczas edycji za pomocą tego narzędzia możliwe jest przeglądanie błędów / pominięć w polityce. Bardzo przydatna jest również karta „Polityka HTML”: u dołu znajduje się „Ocena polityki” - szybkie sprawdzenie, czy polityka zostanie zablokowana przez domyślne ustawienia IE)
Edytor eksportuje do pliku .p3p, który jest reprezentacją XML powyższej polityki. Może także eksportować „wersję kompaktową” tych zasad.
Link do polityki
Następnie http://example.com/w3c/p3p.xml
potrzebny był plik polityki odniesienia ( ) (indeks zasad prywatności, z których korzysta strona):
<META>
<POLICY-REFERENCES>
<POLICY-REF about="/w3c/example-com.p3p#policy1">
<INCLUDE>/</INCLUDE>
<COOKIE-INCLUDE/>
</POLICY-REF>
</POLICY-REFERENCES>
</META>
Te <INCLUDE>
pokazy wszystkie URI, które korzystają z tej polityki (w moim przypadku, całe strony). Plik zasad, który wyeksportowałem z edytora, został przesłany dohttp://example.com/w3c/example-com.p3p
Wyślij zwarty nagłówek z odpowiedziami
Ustawiłem serwer internetowy w przyklad.com, aby wysyłał kompaktowy nagłówek z odpowiedziami:
HTTP/1.1 200 OK
P3P: policyref="/w3c/p3p.xml", CP="IDC DSP COR IVAi IVDi OUR TST"
// ... other headers and content
policyref
jest względnym identyfikatorem URI w stosunku do pliku polityki odniesienia (który z kolei odwołuje się do polityki prywatności), CP
jest zwartą reprezentacją polityki. Pamiętaj, że kombinacja nagłówków P3P w tym przykładzie może nie mieć zastosowania w Twojej konkretnej witrynie; Twoje nagłówki P3P MUSZĄ zgodnie z prawdą reprezentować Twoją własną politykę prywatności!
Zysk!
W tej konfiguracji Evil Eye nie pojawia się, pliki cookie są zapisywane nawet w ramce IFRAME, a aplikacja działa.
Edycja: Czego NIE robić, chyba że lubisz bronić się przed procesami sądowymi
Kilka osób zasugerowało „po prostu uderz kilka tagów w nagłówek P3P, dopóki złe oko się nie podda”.
Tagi to nie tylko kilka bitów, mają znaczenie w świecie rzeczywistym , a ich użycie daje obowiązki w świecie rzeczywistym !
Na przykład udawanie, że nigdy nie gromadzisz danych użytkownika, może uszczęśliwić przeglądarkę, ale jeśli faktycznie gromadzisz dane użytkownika, P3P jest w konflikcie z rzeczywistością. Jasne i proste, celowo okłamujesz użytkowników , co może być przestępstwem w niektórych krajach. Na przykład „idź do więzienia, nie zbieraj 200 $”.
Kilka przykładów ( zobacz p3pwriter dla pełnego zestawu tagów ):
- NOI : „Witryna nie gromadzi zidentyfikowanych danych”. (jak tylko jest jakaś personalizacja, login lub dowolny zbiór danych (***** Analytics, anyone?), to należy uznać go w P3P)
- STP : Informacje są przechowywane w celu osiągnięcia określonego celu. Wymaga to usunięcia informacji w możliwie najkrótszym czasie. Witryny MUSZĄ mieć zasady przechowywania, które określają harmonogram niszczenia. Warunki przechowywania muszą być włączone lub związany z polityką prywatności witryny czytelnej dla człowieka.”(Jeśli więc wysłać
STP
, ale nie mają polityki retencji, to może być popełnienie oszustwa. Jak jest cool? Wcale nie.)
Nie jestem prawnikiem, ale nie chcę iść do sądu, aby sprawdzić, czy nagłówek P3P jest naprawdę prawnie wiążący lub czy możesz obiecać użytkownikom coś bez faktycznej chęci dotrzymania twoich obietnic.