Django DRF с React: Как получить CSRF cook ie? - PullRequest
0 голосов
/ 02 мая 2020

У меня есть интерфейс React, работающий на frontend.example.com и сервер Django с DRF, работающим на backend.example.com. Я использую Django Session Authentication и хочу правильно реализовать CSRF-защиту .

На примере страницы входа React frontend.example.com/login. Это первый раз, когда пользователь посещает страницу. Существует форма с пользователем и паролем, и при отправке создается новый запрос POST для Django бэкэнда. Насколько я знаю, повар токена CSRF ie уже должен быть включен в этот запрос, верно?

Как получить этот токен CSRF из бэкэнда Django? Я подумываю сделать GET-запрос к Django бэкэнду при загрузке страницы входа в систему, чтобы получить этот токен CSRF ie. Это способ сделать это или есть другие лучшие практики?

1 Ответ

1 голос
/ 02 мая 2020

Django имеет раздел для запроса AJAX и способы обработки CSRF: AJAX

Используя этот метод, вы должны отправлять токен снова и снова для каждого сообщения запрос. Другой метод использует CORS. в этом методе вы отвечаете только на домены, которые уже внесены в белый список, с заголовками, которые также включены в белый список. Таким образом, вместо получения и передачи токена CSRF, вы проверяете, поступает ли запрос с нужного домена, и затем вы можете ответить на него. И в сочетании с системой токенов для аутентификации пользователя вы должны быть хороши.

Вы можете использовать этот пакет для обработки CORS, если используете DRF: django -cors-headers

Использование ограничения скорости также может помочь вам избежать спама и роботов, чтобы нанести заметный вред.

...