Как я могу обойти ограничения SameSite cook ie в моей среде разработки? - PullRequest
0 голосов
/ 26 мая 2020

Недавно Chrome изменил политику прикрепления файлов cookie к запросам из разных источников. Теперь файлы cookie не прикрепляются к запросам из разных источников, если:

  1. Атрибут SameSite cook ie имеет значение Lax или None и запрос был инициирован действием пользователя, или
  2. Атрибут SameSite cook ie равен None, а атрибут Secure cook ie равен true, что означает, что запрос с перекрестным происхождением должен использовать схему https .

(Вышеупомянутое не неверно, но оно немного упрощено. Вот более подробное описание .)

В моей среде разработки я использую инструмент для компиляции моего языка разработки и горячей перезагрузки изменений на вкладке моего браузера. Этот инструмент обслуживает код внешнего интерфейса на своем собственном порту, а серверная часть обслуживается на отдельном порту отдельным процессом, поэтому мы имеем дело с запросами из разных источников от браузера к серверной части. Естественно, и фронтенд, и бэкэнд обслуживаются с localhost по схеме http. И многие запросы, которые делает интерфейсное приложение, не инициируются действиями пользователя, но по-прежнему нуждаются в файлах cookie для целей аутентификации.

В результате все, что требует файлов cookie, не будет работать в моей среде разработки. (Да, потратил довольно много времени на то, чтобы понять это…)

Мой вопрос: как я могу обойти, обойти или отключить эти SameSite Cook ie ограничения безопасности для моей среды разработки в простой способ, который не снизит мою безопасность при просмотре других сайтов?

Было бы неплохо, если бы, например, был способ добавить localhost в белый список источников в моем браузере, который позволял SameSite=None файлы cookie даже без атрибута Secure=true. Чуть менее приятный, но все же приемлемый способ обернуть или проксировать мои службы http://localhost:<port>, чтобы к ним можно было получить доступ через схему https. Или, может быть, есть другой подход с использованием какого-нибудь непонятного повара ie magi c.

1 Ответ

0 голосов
/ 30 мая 2020

Если вся ваша среда разработки размещена в localhost, то запросы между разными портами, находясь в разных источниках, по-прежнему считаются как один и тот же сайт. См .: https://web.dev/same-site-same-origin/

В вашей среде разработки вы можете либо полностью удалить SameSite=None; Secure, либо явно указать SameSite=Lax.

В качестве альтернативы, посмотрите на создание само- подписанные сертификаты для localhost или локальных виртуальных машин, чтобы лучше соответствовать вашей производственной среде, хотя это немного сложнее.

...