У нас есть сайт (www.example.com), который отправляет пользователей на ряд сторонних страниц, чтобы проверить платежные реквизиты, которые мы делаем в iframe. Первоначально локальная страница с сайта www.example.com загружается в iframe, а пользователь перенаправляется на сторонний URL-адрес. После того, как пользователь выполнит шаги третьей стороны, они перенаправляются обратно на страницу нашего сайта (www.example.com) в пределах iframe.
Это работает во всех проверенных нами браузерах, кроме IE 11, где наши файлы cookie выглядят потерянными. Мы проверили это как в Windows 7, так и в 8.1, как на рабочем столе, так и в режиме "Metro", и проблема во всех версиях.
Когда пользователь просматривает наш сайт, мы устанавливаем cookie сеанса, который правильно отправляется на первую страницу, которая первоначально загружается в iframe. Однако, если пользователь просмотрел некоторые сторонние страницы в этом iframe, cookie сеанса не отправляется со следующим запросом.
Если мы установим настройку конфиденциальности IE 11 на минимальное значение, эта проблема исчезнет, и все будет работать должным образом.
Все потенциальные решения, к которым я пришел, относятся к заголовкам P3P. У нас есть правильный и корректный заголовок P3P и файл политики XML, и эта проблема возникает только в IE 11.
Обновление: У нас есть несколько других файлов cookie, установленных с помощью JS. Все они сохраняются, как ожидалось. Разница заключается в дате истечения срока действия (1 год для файлов cookie JS, 1 месяц для файла cookie сеанса), домена (явно "example.com" для файлов cookie JS, пустого для cookie сеанса) и являются ли они "только HTTP" (false для JS cookie, true для cookie сеанса).
Я попытался установить все эти параметры в соответствии с кукисами JS для файла cookie сеанса, но это не имело значения.
Обновление 2:. После большего тестирования я не смог создать тестовый пример, который воссоздает эту проблему. Любые дополнительные файлы cookie, которые я пытаюсь проверить с помощью живого кода, также кажутся разбитыми, даже если они установлены с точно таким же кодом, что и файлы cookie JS, которые работают. Вкратце; Я еще не нашел шаблонов для файлов cookie, которые работают, и тех, которые этого не делают.
Интересно отметить, что файлы cookie не удаляются, их просто не отправляют на окончательный запрос. Если загружена другая страница, файлы cookie волшебным образом снова появляются и отправляются; что заставляет меня думать, что это ошибка, связанная с iframe и P3P.
Обновление 3 (день 3): IE 11 обработка файлов cookie продолжает меня путать. Чем дальше я путешествуюсь в лабиринт Microsoft, тем больше потерял себя среди своих смещающихся стен. И здесь есть призраки. Фрагменты полупроклятых политик безопасности, которые вплетались в какое-то эфирное существо, которое отслеживает и насмехается над каждым шагом. Сначала я был заморожен, испуган, ошеломлен в едва уловимой форме, бросаясь прямо из поля зрения, но с каждым минутой я получаю больше утешения от простого знания о его близости. Может ли это быть зверь, которого я послал сюда, чтобы встретиться? Как я мог убить моего единственного компаньона в такие времена?