CSRF в Ionic с многопользовательской и многодоменной серверной частью JHipster

#ionic-framework #spring-security #jhipster #multi-tenant #csrf-token

#ionic-framework #spring-безопасность #jhipster #многопользовательский #csrf-токен

Вопрос:

У меня есть многопользовательский сервер JHipster с доменами, например tenant[.env].domain.ltd , с включенным csrf. Мы создаем мобильное приложение с Ionic, и это приложение может хранить проверки подлинности для нескольких клиентов. В этом мобильном приложении мы устанавливаем <preference name="Hostname" value="domain.ltd" /> .

Как поступить с токеном csrf?

Серверная часть отправляет мобильному приложению XSRF-TOKEN файл cookie .tenant[.env].domain.ltd , который недоступен на стороне клиента, поскольку домены не совпадают, и, следовательно, клиент не может установить данный токен в заголовках запроса.

Должны ли мы отключить csrf для мобильного приложения? Каков наилучший подход для этого? По какому значению мы должны фильтровать, чтобы отключить csrf, если это единственное решение?

Ответ №1:

Хорошо, мне наконец удалось заставить его работать. При генерации cookie-файлов токена xsrf я просто проверяю, поступает ли запрос из мобильного приложения. Если это так, я устанавливаю домен cookie на .domain.ltd . Единственный момент, в котором я не уверен, — это то, как я должен определить, что это мобильный запрос. Я на самом деле использую Origin заголовок.