Невозможно прочитать cookie XSRF-TOKEN в Angular JS 1.5.5

Чтобы защитить приложение от CSRF-атаки, мы установили файл cookie с именем XSRF-TOKEN со стороны сервера. Таким образом, из кода на стороне клиента мы можем установить cookie-файл и отправить его на сервер, но для проверки CSRF на стороне сервера нам нужно отправить заголовок при запуске вызова службы "POST". В соответствии с угловым документом $http автоматически устанавливает заголовок X-XSRF-TOKEN, читая cookie-файл (см. Ссылку), но код Javascript не может прочитать cookie, хотя мы развернули наше приложение в том же домене. Код генерации cookie на стороне сервера и подробности развертывания службы приведены ниже:

final Cookie newCookie = new Cookie(
"XSRF-TOKEN",
csrfValue);
newCookie.setPath("/");
httpResponse.addCookie(newCookie);

Пользовательский интерфейс развернут в порту 8080, а служба развернута в порту 8084 внутри той же виртуальной машины

1 ответ

Порты 8080 и 8084 имеют различное происхождение, поэтому вы не можете читать куки-файлы с одного на другой, так же, как вы не можете получить доступ к куки-файлам любого другого веб-сайта в JavaScript, работающем на вашем.

Как сервис аутентифицирует пользователя? Если он основан на токене, и токен отправляется в виде заголовка запроса, вам даже не нужна дополнительная защита от csrf.

Другие вопросы по тегам