Допустим бекенд у нас доступен только по https, а фронтэнд по http. Если мы удалим все сookie и залогинимся в https бекэнде, то сookie CSRF будет передан с параметром secure, соответственно он не будет доступен в js http фронтэнда. Как результат: при попытке отредактировать личные данные произойдет ошибка. Аналогичная проблема возникает при переходе из https фронтэнда(можно задать в настройках витрины) в http бекэнд. При выходе из аккаунта(фронтэнд/бекэнд) токены не удаляются т.ч. придется перезапустить браузер чтобы убить сессию.
5 комментариев
Потому, что даже для меня как разработчика это оказалось неприятным сюрпризом, что уж говорить об обычных пользователях. Включение https опционально для каждого поселения, а в Магазине есть возможность включения https только для оформления заказа и личного кабинета. Аналогичной настройки для бекэнда не существует. Поэтому очевидно, что cookie CSRF токена нужно задавать с параметром SameSite="Lax".
Варианты реализации передачи CSRF токенов
https://support.webasyst.ru/forum/41574/zashchita-ot-csrf-atak/ вангую, что проблема та же
По моему, перенаправление на HTTPS должно работать везде по умолчанию.
и еще один https://support.webasyst.ru/fo...