Какой из них является более безопасным локальным хранилищем или куки? - PullRequest
0 голосов
/ 08 июня 2018

Я занимаюсь разработкой проекта с использованием Django REST API (бэкэнд) и React JS (интерфейс).Я использую Json Web token для аутентификации.Но я не совсем понимаю, стоит ли мне хранить Json Web token в local storage или в cookies?Какой из них более безопасен и почему?Как крупные компании справляются с таким типом безопасности между API и client side?

1 Ответ

0 голосов
/ 08 июня 2018

Фундаментальный вопрос более безопасен от чего?

Основная угроза - межсайтовый скриптинг (xss).В связи с этим cookie определенно более безопасен, если и только если он установлен как httpOnly.

Однако, если информация об аутентификации находится в cookie, подделка межсайтовых запросов (csrf) становится проблемой., и вы должны реализовать защиту CSRF.Не конец света, но вы должны заботиться об этом.Если вы храните токен аутентификации в localstorage и отправляете его в качестве заголовка, csrf не является проблемой.

Также файлы cookie с истекшим сроком действия (постоянные файлы cookie) часто сохраняются в незашифрованных файлах на клиенте, которые могут или могутне быть действительной угрозой в вашей модели угроз.

Короче говоря, это зависит.В целом, сохранение токена в httpOnly, безопасный cookie обычно считается наиболее безопасным, но это имеет последствия, как описано выше.Хранение токена в локальном хранилище также приемлемо в большинстве случаев.Тем более, что если вам нужно отправить токен нескольким бэкэндам (в разных источниках), вы не можете иметь его в cookie, потому что он будет отправлен только в его собственное начало.

Как всегда,дьявол в деталях (реализации).

...