2011-05-19 10 views
6

Widziałem wiele postów tutaj, aby uzyskać pliki cookie do pracy wewnątrz iframe w IE, i wypróbowałem kilka rozwiązań, ale do tej pory miałem brak szczęścia. Oto co mam do czynienia z: (. Widget)Nie mogę ustawić plików cookie w IFRAME w IE, nawet z nagłówkiem P3P

  • Mam iframe, który jest tworzony przez JavaScript na stronie klienta nie mam kontrolę miejscu u klienta. Muszę ustawić pliki cookie, aby użytkownik zalogował się w elemencie iframe, i działa w przeglądarce Chrome i Firefox, ale nie w IE 7/8. Nie testowałem IE 6, ale zakładam, że ma ten sam problem.

  • Stworzyłem politykę P3P za pomocą edytora polityki IBM, a redaktor powiedział, że polityka kompaktowa była akceptowalna w ramach zabezpieczeń IE, niezależnie od tego, czy jest ustawiona na Niski, Średni czy Wysoki. CP używam to:

P3P: policyref="/w3c/p3p.xml" CP="CAO DSP COR CURa ADMa DEVa PSAa PSDa CONi TELi OUR IND PHY ONL UNI COM NAV INT DEM CNT PRE" (próbowałem kilka innych CP że ludzie mówią pracy, ale nie widziałem żadnej różnicy w wyniku.)

  • serwer www (nginx) obsługuje ten nagłówek P3P z każdym plikiem. Nie serwuję tego z kodu.

  • Plik p3p.xml istnieje i pasuje do zasad kompaktowych. Plik p3p.xml sprawdza poprawność za pomocą walidatora W3C P3P.

  • Nawet z nagłówkiem P3P (bez względu na to, który próbowałem), IE daje mi "złe oko" na pasku stanu na dole i nie pozwala mi ustawić ciasteczek. W raporcie dotyczącym prywatności wyświetlają się jako Zablokowane.

  • czytam posta Piskvor w sprawie SO na ten temat: Cookie blocked/not saved in IFRAME in Internet Explorer ale nie byłem w stanie odtworzyć tego, co był w stanie zrobić na swojej stronie demo: http://newmoon.wz.cz/test/page.php?send_p3p=1. Zakładam, że to dlatego, że dostaję złe oko, a on nie. Zrobiłem wszystko, co przeczytałem, jako zalecenie, aby pozbyć się zła jeszcze, ale ono trwa. Kpiąc ze mnie.

  • Moja strona testowa jest tutaj, jeśli chcesz ją wypróbować: http://truelike.com/js/bobs/frametest.php Zestaw/odczytu stron działać poprawnie, gdy patrzy poza iframe, ale nie działa w ogóle wewnątrz podczas korzystania z IE.

  • Dla odniesienia, używam PHP na zapleczu.

Każda pomoc w ogóle byłoby bardzo doceniane - jesteśmy coraz zdesperowani tutaj.

Dzięki!

Odpowiedz

4

Rozwiązałem to sam. Wygląda na to, że problem dotyczył modułu HTTPUserIDModule firmy NGINX (http://wiki.nginx.org/HttpUserIdModule). I był przy użyciu tego wysłać nagłówek P3P, ale nginx nie wysyłał nagłówek konsekwentnie, być może z powodu tej linii w swojej dokumentacji:

Dyrektywa wyznacza wartość dla nagłówka P3P, który będzie wysłany razem z plikiem cookie .

Widziałem, jak przechodzą nagłówki podczas sprawdzania za pomocą loków lub rysi, ale nie wtedy, gdy sprawdzałem z Firebug lub Charles.Być może istnieje opcja konfiguracji, aby to naprawić, ale nie mogłem go znaleźć.

W każdym razie, jeśli wyciągniesz dyrektywę nagłówka OUT z HTTPUserIdModule i po prostu wyślesz nagłówek ręcznie w kodzie, działa. Prawdopodobnie zadziała, jeśli ręcznie wyślesz nagłówek za pomocą modułu HTTPHeadersModule http://wiki.nginx.org/HttpHeadersModule, ale nie testowałem jeszcze tego.

Kiedy pracowałem przez kod, zobaczyłem, że nie potrzebowałem nagłówka wszystkich plików - wystarczyło tylko ustawienie plików/uzyskanie ciasteczek, w przeciwieństwie do wielu rad, które widziałem.

Ponadto, moje CP było najwyraźniej zbyt agresywne, pomimo tego, że redaktor polityki IBM powiedział, że było w porządku. Użyłem bardziej podstawowego CP i to zadziałało.

+0

Czy używasz tylko zwartą polityki lub też plik p3p.xml? Czy możesz powiedzieć, z której strony korzystałeś z tych zasad? Od jakiegoś czasu uderzam głową o ścianę w stosunku do IE8 z polisami o średnim bezpieczeństwie i p3p. – Sergi

+0

Użyłem tylko polityki zwartej, w szczególności: 'header ('P3P: CP =" CAO PSA NASZ "');' – Wemmick

+0

Spróbuję tego. Czy chcesz używać plików cookie do logowania użytkowników? – Sergi

0

Zmiany w nginx 0.8.20
poprawkowe: „Set-Cookie” i „P3P” linie nagłówka odpowiedzi FastCGI były nie ukryte podczas buforowania jeśli nie dyrektyw „fastcgi_hide_header” były stosować żadnych parametrów.

Nginx Changes log

Powiązane problemy