Могу ли я разрешить использование сторонних файлов cookie с помощью CORS в iframe в Google Chrome? - PullRequest
0 голосов
/ 05 марта 2020

Почему мои файлы cookie с междоменным запросом и withCredentials=true больше не отправляются, когда в среде Chrome?

включена опция "Блокировать сторонние файлы cookie": Chrome 80.0.3987.122, nodejs server, 2 домен (a.com, b.com)

Контрольный пример:

  1. Установить Cook ie, используя новые правила test=cookie; SameSite=None; Secure для домена a.com
  2. Напишите <iframe src="https://b.com" /> и поместите в a.com/index.html
  3. Напишите var xhr = new XMLHttpRequest(); xhr.open('GET', 'https://a.com/', true); xhr.withCredentials = true; xhr.send(null); и установите в b.com/index.html
  4. Добавьте CORS к a.com, например: access-control-allow-origin: https://b.com и access-control-allow-credentials: true
  5. Открыть https://a.com в Chrome

В результате : xhr запрос к a.com успешно отправлен и получен 200, но: когда "Блокировать третий "cookie-файлы" включено : cook ie test=cookie cook ie отсутствует в запросе.

Почему? Это первый участник вечеринки ie, поскольку домен a.com открыт на вкладке chrome.

Факты:

  1. Новый Google Cook ie дизайн позволяет готовить ie с SameSite=None; Secure ( источник )
  2. CORS позволяет отправлять site cookies при access-control-allow-credentials: true ( source )
  3. XMLHttpRequest позволяет отправлять куки с withCredentials=true ( source )
  4. Request и Cookie для 1rd-site (не 3-го) в то время как опция называется block third-party cookie

Проблема с хромом: https://bugs.chromium.org/p/chromium/issues/detail?id=918322

1 Ответ

0 голосов
/ 05 марта 2020

Почему? Это сторонний повар ie, поскольку домен a.com открыт на вкладке chrome.

Это сторонний повар ie, поскольку запрос был вызван b.com хотя b.com подставлено a.com.

Полагаю, вы могли бы обойти это, используя postMessage, чтобы отправить сообщение на window.parent (то есть a.com) и получить ответ от страницы, сделав сам запрос XHR.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...