Вопрос проверяет понимание механизмов хранения токенов аутентификации и безопасности веб-приложений.
Cookies — это небольшие фрагменты данных, которые браузер хранит и автоматически отправляет на сервер с каждым запросом к домену, который их установил. Это делает их естественным выбором для хранения токенов аутентификации, так как разработчику не нужно вручную добавлять токен в заголовки каждого запроса.
Cookie при каждом запросе, что упрощает клиентский код.httpOnly, cookie становится недоступным для JavaScript (document.cookie). Это защищает токен от кражи через XSS-атаки.const express = require('express');
const app = express();
app.post('/login', (req, res) => {
const token = 'some-jwt-token';
res.cookie('auth_token', token, {
httpOnly: true,
secure: true,
sameSite: 'strict',
maxAge: 3600000 // 1 час
});
res.send('Logged in');
});
app.get('/profile', (req, res) => {
const token = req.cookies.auth_token;
if (!token) return res.status(401).send('Unauthorized');
// проверка токена
res.send('Profile data');
});Cookies имеют ограничение по размеру (около 4 КБ) и могут быть уязвимы для CSRF, если не настроить SameSite. Альтернативой является хранение токена в localStorage и отправка через заголовок Authorization, но это менее безопасно при XSS, так как JavaScript имеет прямой доступ к хранилищу.
Вывод: Хранение токенов в cookies с флагами httpOnly, Secure и SameSite — это стандартная практика для веб-приложений, требующих баланса между удобством и безопасностью. Особенно полезно для серверных приложений, где не нужен доступ к токену из JavaScript.
Уровень
Рейтинг:
4
Сложность:
4
Навыки
JavaScript
Networks
Ключевые слова
Подпишись на React Developer в телеграм
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию