Я змусив його працювати, але рішення трохи складне, тож потерпіть мене.
Що відбувається
Наразі Internet Explorer надає нижчий рівень довіри сторінкам IFRAME (IE називає цей "сторонній" вміст). Якщо на сторінці всередині IFRAME немає Політики конфіденційності, її файли cookie блокуються (що вказується піктограмою ока в рядку стану, коли ви клацаєте на ній, вона показує вам список заблокованих URL-адрес).
(джерело: piskvor.org )
У цьому випадку, коли файли cookie заблоковані, ідентифікатор сеансу не надсилається, а цільовий скрипт видає помилку "сеанс не знайдено".
(Я спробував встановити ідентифікатор сеансу у форму та завантажити його зі змінних POST. Це спрацювало б , але з політичних причин я не міг цього робити.)
Можна зробити сторінку всередині IFRAME більш довіреною: якщо внутрішня сторінка надсилає заголовок P3P з політикою конфіденційності, прийнятною для IE, файли cookie будуть прийняті .
Як її вирішити
Створіть політику p3p
Хорошим початковим пунктом є навчальний посібник W3C . Я пройшов через нього, завантажив редактор політики конфіденційності IBM і там створив представлення політики конфіденційності та дав їй ім'я для посилання на нього (ось це було policy1
).
ПРИМІТКА. Наразі вам потрібно з’ясувати, чи має ваш сайт політику конфіденційності, а якщо ні, створити її - чи збирає вона дані користувачів, які дані, що з ними робить, хто має до них доступ, і т. д. Вам потрібно знайти цю інформацію і подумати над нею. Просто ляпаючи кілька тегів, це не виріже. Цей крок не може бути виконаний виключно в програмному забезпеченні, і може бути дуже політичним (наприклад, "чи слід продавати нашу статистику кліків?").
(наприклад, "сайтом керує компанія ACME Ltd., він використовує анонімні ідентифікатори за сеанс для своєї роботи, збирає дані користувачів лише в тому випадку, якщо це прямо дозволено і лише для наступних цілей; дані зберігаються лише стільки, скільки потрібно, тільки наша компанія має доступ до нього тощо тощо ").
(Під час редагування за допомогою цього інструменту можна переглянути помилки / упущення в політиці. Також дуже корисною є вкладка "HTML політика": внизу є "Оцінка політики" - швидка перевірка, чи буде політика заблокована за налаштуваннями IE за замовчуванням)
Редактор експортує у .p3p файл, який є XML-представленням вищезгаданої політики. Крім того, він може експортувати "компактну версію" цієї політики.
Посилання на політику
Тоді http://example.com/w3c/p3p.xml
потрібен був файл довідника про політику ( ) (індекс політики конфіденційності, який використовує сайт):
<META>
<POLICY-REFERENCES>
<POLICY-REF about="/w3c/example-com.p3p#policy1">
<INCLUDE>/</INCLUDE>
<COOKIE-INCLUDE/>
</POLICY-REF>
</POLICY-REFERENCES>
</META>
В <INCLUDE>
показує всі ідентифікатори URI , які будуть використовувати цю політику (в моєму випадку, весь сайт). Файл політики, який я експортував із Редактора, завантажено вhttp://example.com/w3c/example-com.p3p
Надішліть компактний заголовок із відповідями
Я встановив веб-сервер на example.com для надсилання компактного заголовка з відповідями, наприклад:
HTTP/1.1 200 OK
P3P: policyref="/w3c/p3p.xml", CP="IDC DSP COR IVAi IVDi OUR TST"
// ... other headers and content
policyref
є відносним URI до файлу довідника про політику (який, в свою чергу, посилається на політику конфіденційності), CP
є компактним представленням політики. Зауважте, що комбінація заголовків P3P у прикладі може не застосовуватися на вашому конкретному веб-сайті; ваші заголовки P3P ОБОВ'ЯЗКОВО повинні правдиво представляти вашу власну політику конфіденційності!
Прибуток!
У цій конфігурації Evil Eye не з'являється, файли cookie зберігаються навіть у IFRAME, і програма працює.
Редагувати: чого НЕ робити, якщо ви не хочете захищатись від судових позовів
Кілька людей запропонували "просто заштрихувати кілька тегів у свій заголовок P3P, поки Злий Око не здасться".
Теги - це не лише купа бітів, вони мають реальне значення у світі , а їх використання дає вам реальні обов'язки у світі !
Наприклад, роблячи вигляд, що ви ніколи не збираєте дані користувача, це може зробити браузер щасливим, але якщо ви насправді збираєте дані користувачів, P3P суперечить реальності. Простий і простий, ви цілеспрямовано брешите своїх користувачів , і це може бути злочинною поведінкою в деяких країнах. Як і в, "йди до в'язниці, не збирай 200 доларів".
Кілька прикладів ( див. P3pwriter для повного набору тегів ):
- NOI : "Веб-сайт не збирає ідентифіковані дані." (як тільки з’явиться будь-яке налаштування, логін або будь-який збір даних (***** Analytics, хтось?), ви повинні підтвердити це у своєму P3P)
- STP : Інформація зберігається для досягнення зазначеної мети. Для цього потрібно відкинути інформацію якомога раніше. Сайти ОБОВ'ЯЗКОВО мають проводити політику збереження, яка встановлює графік знищення часу. Політика збереження ОБОВ'ЯЗКОВО повинна бути включена у політику конфіденційності, зрозумілу людині, або пов’язана з нею. "(Тому, якщо ви надсилаєте,
STP
але не маєте політики зберігання, ви можете скоїти шахрайство. Наскільки це здорово? Зовсім не.)
Я не юрист, але я не бажаю звертатися до суду, щоб перевірити, чи дійсно заголовок P3P є юридично обов'язковим чи ви можете пообіцяти своїм користувачам що-небудь, але насправді не бажаєте виконувати свої обіцянки.