Как использовать функции безопасности Django (например, CSRF) с TokenAuthentication в Django Rest Framework - PullRequest
0 голосов
/ 05 мая 2020

В настоящее время я создаю свое приложение с помощью TokenAuthentication (могу ли я использовать SessionAuthentication вместо отдельного SPA, я не полностью понял эту часть документации, но похоже, что SessionAuthentication следует использовать только для XHR, поступающего с веб-сайтов, где интерфейс обслуживается Django).

Я слышал, что есть несколько проблем с безопасностью, связанных с простым хранением токена в Cook ie и завершением его работы.

Итак, мой цель состоит в том, чтобы иметь постоянные сеансы (мои пользователи не должны входить в систему каждый раз, когда они посещают мой сайт) и защитить себя от атак (я думаю о CSRF, XXS и CORS, мне не хватает некоторых?).

Чтобы решить первую проблему, мне пришла в голову идея хранить токен в защищенном Http-Only Cook ie (и, следовательно, отправлять его автоматически с каждым запросом на бэкэнд). Я уже нашел решение здесь: Django -rest-auth use cook ie вместо заголовка авторизации

Теперь мне интересно:

  1. Правильно ли я использую подход, есть ли какой-то простой способ, о котором я не слышал / не слышал?
  2. Как мне go защитить свой сайт от CSRF и XXS при использовании TokenAuthentication? Я прочитал официальную документацию по этому , но не понял из этого особого смысла. Что именно мне нужно сделать?

Другой вариант, который я рассмотрел, - это использование OAuth2 с типом предоставления пароля, , хотя, согласно Auth0, это не рекомендуется для SPA

...