Есть только несколько мест, где вы можете хранить свои ключи в браузере:
- SessionStorage / LocalStorage
- Cookies
- Веб-работники
- в памяти
Cookies
Cookies - одно из лучших мест для хранения чувствительных ключей, если оно имеет правильные конфигурации / атрибуты с ними. Это включает, httpOnly
, secure
, SameSite
, Domain
и гарантию того, что они истекают в разумные сроки. подробнее читайте здесь о том, как правильно установить эти атрибуты.
Файлы cookie удобны в использовании, поскольку они так же безопасны, как HTTPS, и к ним нельзя получить доступ через javascript (если заданы правильные атрибуты, например, httpOnly). Но учтите, что все еще существуют уязвимости, которые вы должны остерегаться, например, атака CSRF, и вам придется включить токен CSRF, чтобы противостоять этой уязвимости, так как повар ie автоматически добавляется в заголовки браузером.
LocalStorage / SessionStorage
LocalStorage и хранилище сеансов - плохие места для хранения ключей, поскольку они доступны через javascript. Вы можете посмотреть здесь о том, как Auth0 рекомендует хранить ключи, и заметить, что они убеждают не хранить его в localStorage по указанным причинам.
В памяти
Вы можете сохранить введите javascript памяти (используйте закрытие для инкапсуляции вашего ключа). У этого есть недостаток, так как ключ не будет сохраняться после обновления / закрытия / новой вкладки и т. Д. c, но все еще довольно безопасен
Web Workers
Web Workers и другие место, где вы можете хранить ключ. Рабочие работают в отдельной глобальной области видимости, чем остальная часть приложения, поэтому это обеспечивает их безопасность, и вы можете точно контролировать, к какому API-интерфейсу отправлять ключи.
Auth может быть сложным и может легко забыть включить что-то важное, поэтому убедитесь, что вы хорошо прочитали все атрибуты и то, как работает каждая часть. Или go с заранее заданными параметрами, такими как Auth0 или одиночное пение.