Родственный отдел создал HTML-файл, который фактически является платформой для нескольких окон iframe. Каждый iframe вызывает отчет, который размещается на веб-сервере, с немного разными параметрами. В вызванном отчете будет отображаться форма входа для неаутентифицированных пользователей или содержимое отчета для уже аутентифицированных пользователей.
scaffold.html:
<html>
<head>
<title>I just show the output from a bunch of report calls</title>
</head>
<body>
<iframe src = "https://somesite.com/useful_report.html?parameter1=a¶meter2=1" id = "iframe1"></iframe>
<iframe src = "https://somesite.com/useful_report.html?parameter1=b¶meter2=2" id = "iframe2"></iframe>
<iframe src = "https://somesite.com/useful_report.html?parameter1=c¶meter2=3" id = "iframe3"></iframe>
<iframe src = "https://somesite.com/useful_report.html?parameter1=d¶meter2=4" id = "iframe4"></iframe>
</body>
</html>
Родственная организация объяснила нам, что если пользователь был подписан на https://somesite.com, вышеуказанная настройка работала отлично - каждый из фреймов отображал содержимое полезного_report.html ... еще несколько дней назад.
Когда я
каждый из окон iframe возвращает форму входа https://somesite.com. Если затем я открою файл Help_report.html на отдельной вкладке, содержимое отчета загрузится (доказательство того, что somesite.com знает, что я все еще вошел в систему ‡).
Используя инструменты разработчика, я вижу, что заголовки запросов к полезному_report.html не включают атрибут «Cookie:», поэтому это объясняет, почему полезный_report.html возвращает форму входа.
Мой вопрос: почему запросы iframe не отправляют файлы cookie? Какие настройки / политики / директивы Chrome и / или сервера препятствуют этому?
‡ - и теперь он знает, что я знаю, что он знает.
@cody Я просматриваю файл cookie, но не вижу атрибутов с таким именем (или похожими). Могу ли я увидеть атрибут SameSite
в Инструментах разработчика?
да, вы бы увидели это как пару имя / значение в файле cookie в инструментах разработчика, например идентификатор сеанса или что-то еще ... вычеркните это из списка, я думаю
Можете ли вы быстро запустить локальный http-сервер, передать через него файл с iframe и посмотреть, имеет ли это значение?
@cody Да, разница есть; при размещении на somesite.com iframe scaffold.html загружают содержимое отчета (заголовки запроса включают файл cookie).
Привет, @JeromyFrench, не думаю, что это имеет какое-то отношение к content-security-policy
. Есть ли причина, по которой вы добавили тег content-security-policy
? У вас есть csp
? если да, то без него работает?
@AnkitVijay Я подозреваю, что здесь задействован параметр политики безопасности контента (на основе того, что я прочитал, исследуя это, прежде чем опубликовать свой вопрос), но я достигаю. Я недостаточно знаю эту тему - как работает CSP - чтобы исключить это.
Это из-за политики файлов cookie SameSite, что По умолчанию в Chrome используется Lax., что означает, что файлы cookie не будут отправлены, если пользователь не увидит URL-адрес, исключающий фреймы.
Если вы являетесь владельцем somesite.com, вы можете отказаться от этой политики, установив для политики SameSite значение None, и снизить риск CSRF-атак, выполнив Двойная отправка cookie.
somesite.com
устанавливаетSameSite
в свой файл cookie? chromestatus.com/feature/4672634709082112