Недавно Chrome изменил политику прикрепления файлов cookie к запросам из разных источников. Теперь файлы cookie не прикрепляются к запросам из разных источников, если:
- Атрибут
SameSite
cook ie имеет значение Lax
или None
и запрос был инициирован действием пользователя, или - Атрибут
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.