Почему мой сайт может загружать bootstrap js, но не quilljs с новыми правилами Chrome cookie?

#javascript #http #flask #cookies #samesite

#javascript #http #flask #файлы cookie #тот же сайт

Вопрос:

Мой сайт Flask устанавливает для атрибута SameSite значение Lax и является HTTPONLY для SESSION_COOKIE. Сайт устанавливает сеансовый файл cookie, а Google Analytics js устанавливает 2 файла cookie Google Analytics. Оба они являются файлами cookie первого участника.

Ссылки на интерфейс bootstrap.js на одной странице, что не приводит к ошибке SameSite. Эта страница загружается нормально. Отдельная страница на этом сайте ссылается на quilljs, который выдает ошибку SameSite. Quilljs не загружается. Я знаю, что поведение Google Chrome 85 запрещает сторонние файлы cookie. (Другой сайт отправляет любой запрос на мой сайт с помощью файлов cookie первого участника моего сайта, который не является запросом GET верхнего уровня.)

Означает ли это, что quilljs отправляет на мою страницу какой-либо запрос GET не верхнего уровня после того, как я пытаюсь связать его с библиотекой js? И этот bootstrap отправляет запрос GET верхнего уровня и, следовательно, не ошибается? Всегда ли из библиотеки отправляется как минимум запрос GET верхнего уровня или браузер может связать библиотеки (внедрить их?) На страницу без запроса GET от третьей стороны к первой стороне?

Похоже, у меня есть два варианта:

  1. Найдите редактор WYSIWYG (который является Quill), который не отправляет файлы cookie
  2. Найдите способ изменить файл cookie Google Analytics, чтобы установить для атрибута SameSite значение None

Пожалуйста, подтвердите, что я понимаю, что происходит, и я считаю, что мои варианты верны.

Кроме того, если вы очень хорошо осведомлены, можете ли вы сказать мне, почему quilljs только пытается отправить _ga (google Analytics) cookies, а не файл cookie сеанса. Это определенно относится к разделу приложения инструмента проверки . localhost отправляет сеансовые и 2 _ga-cookie, а quilljs отправляет только 2 _ga-cookie.

Большое вам спасибо за любую уважительную информацию, которой вы можете поделиться.

Ответ №1:

Я не знаю, что такое quilljs, но я думаю, что причина, по которой ваш скрипт не загружается, заключается в cors, а не в файлах cookie. Браузеры блокируют запросы cors, если сервер не включает правильные заголовки cors в ответ на предполетный запрос. Таким образом, в основном, когда браузер запрашивает сценарий начальной загрузки, сервер начальной загрузки отправляет правильные заголовки cors (access-control-allow-origin: … и другие), а когда он запрашивает сервер quilljs, браузер не ограничивает это соединение. У вас есть два варианта: настроить запросы cors для quilljs или найти другой инструмент. Подробнее о cors вы можете прочитать здесь .

Комментарии:

1. Спасибо, святис. Я прочитаю ресурс, которым вы поделились, чтобы больше узнать о заголовках и HTTP.