Всплывающее окно согласия на использование файлов cookie не исчезает в IFrame

В нашем приложении есть IFrame, который используется для отображения любого сайта (который настраивается через консоль admin / crm). У нас возникла странная проблема при отображении сайтов со всплывающим окном согласия cookie в IFrame. В IFrame, даже если пользователь принимает согласие на использование файлов cookie, в последующих запросах всплывающее окно появляется снова. Похоже, что IFrame не может отправлять или устанавливать файлы cookie.

Когда мы открываем веб-сайты во вкладках браузера, всплывающее окно больше не появляется после того, как мы принимаем файл cookie. Что может происходить и как мы можем избавиться от этих всплывающих окон согласия на использование файлов cookie, когда пользователь принимает его в IFrame? Обратите внимание, что мы не контролируем сайты, отображаемые в IFrame.

Я попробовал простую HTML-страницу с IFrame, и проблема была воспроизведена там, код, как показано ниже

       <html>
<head>
<title>IFrame issue</title>
</head>
<body>
<iframe src="https://www.nutrition.org.uk/" height="100%" width="100%" title="IFrame Example" ></iframe>
</body>
</html>

Скриншот всплывающего окна (нижняя часть страницы черным цветом)

Обновить:-

Я проверил файлы cookie, установленные для этого веб-сайта. На обычной вкладке браузера, когда пользователь нажимает кнопку "ОК". Устанавливается новый файл cookie, например, в этом случае "cookieAcceptanceCookie"="принято". Проверьте изображение ниже,

То же самое, что я проверил с IFrame, и там был установлен такой же файл cookie. Проверьте изображение ниже.

Таким образом, похоже, что проблема с отправкой этого файла cookie в последующих запросах остается. Я предполагаю, что обычные вкладки браузера могут отправлять этот файл cookie, поскольку IFrame не может его отправить, поэтому эта проблема возникает в IFrame.

1 ответ

На самом деле это распространенная функция конфиденциальности браузеров: iframe не могут устанавливать файлы cookie. Это защита от CSRF и функция защиты от отслеживания, потому что веб-сайты долгое время отслеживали пользователей с помощью файлов cookie, которые поступают из iframe.

Возможно, вам нужно будет проинструктировать своих пользователей Allow third-party cookiesв chrome://settings/content/cookies, возможно, создав страницу, подобную этой.

Если вы управляете сайтами внутри iframe, вы можете использовать SameSite=None... но, к сожалению, это не применимо, потому что вы не контролируете их.

Другие вопросы по тегам