В настоящее время я создаю свое приложение с помощью TokenAuthentication (могу ли я использовать SessionAuthentication вместо отдельного SPA, я не полностью понял эту часть документации, но похоже, что SessionAuthentication следует использовать только для XHR, поступающего с веб-сайтов, где интерфейс обслуживается Django).
Я слышал, что есть несколько проблем с безопасностью, связанных с простым хранением токена в Cook ie и завершением его работы.
Итак, мой цель состоит в том, чтобы иметь постоянные сеансы (мои пользователи не должны входить в систему каждый раз, когда они посещают мой сайт) и защитить себя от атак (я думаю о CSRF, XXS и CORS, мне не хватает некоторых?).
Чтобы решить первую проблему, мне пришла в голову идея хранить токен в защищенном Http-Only Cook ie (и, следовательно, отправлять его автоматически с каждым запросом на бэкэнд). Я уже нашел решение здесь: Django -rest-auth use cook ie вместо заголовка авторизации
Теперь мне интересно:
- Правильно ли я использую подход, есть ли какой-то простой способ, о котором я не слышал / не слышал?
- Как мне go защитить свой сайт от CSRF и XXS при использовании TokenAuthentication? Я прочитал официальную документацию по этому , но не понял из этого особого смысла. Что именно мне нужно сделать?
Другой вариант, который я рассмотрел, - это использование OAuth2 с типом предоставления пароля, , хотя, согласно Auth0, это не рекомендуется для SPA