Refresh token — долгоживущий токен (недели/месяцы), который client использует для получения новых коротких access_token без повторной аутентификации. Типичный flow: access_token живёт 15 мин, refresh_token 30 дней. Когда access истёк, клиент шлёт refresh к token endpoint → получает новый access. Критично: refresh хранить в secure storage (httpOnly cookie, не localStorage).
Ниже: подробности, пример, смежные термины, FAQ.
Бесплатный онлайн-инструмент — сканер безопасности сайта: результат мгновенно, без регистрации.
POST /oauth/token
grant_type=refresh_token
refresh_token=XXX
client_id=Y
→ { access_token: "...", refresh_token: "NEW", expires_in: 900 }Refresh Token — это специальный токен, используемый в протоколах аутентификации для получения новых access-токенов без повторного ввода учетных данных пользователем. Он позволяет поддерживать сессию активной, даже если access-токен истек, что особенно важно для приложений с ограниченным временем действия токенов, обычно составляющим от 15 до 60 минут.
При аутентификации пользователь сначала получает access-токен и refresh-токен. Access-токен используется для доступа к защищенным ресурсам, а refresh-токен — для получения нового access-токена, когда старый устаревает. Обычно refresh-токены имеют более длительный срок действия, например, от нескольких дней до нескольких месяцев.
Процесс работы refresh-токена выглядит следующим образом:
Для реализации этого механизма можно использовать HTTP-запросы. Например, с помощью команды curl:
curl -X POST https://api.example.com/token/refresh \
-H "Content-Type: application/json" \
-d '{"refresh_token": "your_refresh_token"}'Если refresh-токен действителен, сервер вернет новый access-токен в ответе.
Refresh Token широко используется в веб-приложениях и мобильных приложениях для поддержания сессий пользователей. Например, при разработке RESTful API можно использовать refresh-токены для аутентификации пользователей. Ниже представлен пример реализации на Node.js с использованием библиотеки jsonwebtoken:
const jwt = require('jsonwebtoken');
const refreshTokens = [];
app.post('/login', (req, res) => {
// Аутентификация пользователя
const user = { id: 1 }; // пример пользователя
const accessToken = jwt.sign(user, process.env.ACCESS_TOKEN_SECRET, { expiresIn: '15m' });
const refreshToken = jwt.sign(user, process.env.REFRESH_TOKEN_SECRET);
refreshTokens.push(refreshToken);
res.json({ accessToken, refreshToken });
});
app.post('/token', (req, res) => {
const { token } = req.body;
if (!token) return res.sendStatus(401);
if (!refreshTokens.includes(token)) return res.sendStatus(403);
jwt.verify(token, process.env.REFRESH_TOKEN_SECRET, (err, user) => {
if (err) return res.sendStatus(403);
const accessToken = jwt.sign({ id: user.id }, process.env.ACCESS_TOKEN_SECRET, { expiresIn: '15m' });
res.json({ accessToken });
});
});В этом примере, после успешной аутентификации пользователь получает access-токен и refresh-токен. Когда access-токен истекает, пользователь может запросить новый access-токен, отправив refresh-токен на сервер.
Инструмент проверяет HTTP-заголовки безопасности, конфигурацию SSL/TLS, утечки серверной информации и защиту от распространённых атак (XSS, clickjacking, MIMEsniffing). Оценка от A до F показывает общий уровень защиты.
Проверка Content-Security-Policy, HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy и других.
Версия TLS, срок сертификата, цепочка доверия, поддержка HSTS.
Поиск раскрытых серверных версий, debug-режимов, открытых конфигов и директорий.
Детальный отчёт с объяснением каждой проблемы и конкретными шагами для исправления.
аудит HTTP-заголовков
проверка конфигурации
CSP и HSTS настройка
соответствие стандартам
Strict-Transport-Security.Server: Apache/2.4.52 помогает атакующим подобрать эксплойт. Скройте версию.DENY или SAMEORIGIN.nosniff браузер может интерпретировать файлы неправильно (MIME sniffing).Content-Security-Policy-Report-Only, мониторьте нарушения, затем включите.Server, X-Powered-By, X-AspNet-Version из ответов.История security-проверок и мониторинг HTTP-заголовков безопасности.
Зарегистрироваться (FREE)Server-side: session/database. Client-side: httpOnly + Secure + SameSite=Strict cookie. Никогда localStorage — XSS vulnerability.
Revoke all refresh tokens user через <code>DELETE /tokens WHERE user_id=X</code>. User должен relogin.
Best practice. Особенно для SPA. OAuth 2.1 draft требует rotation.
Бесплатный тариф — 10 мониторов, проверки каждые 5 мин, без карты. Платные тарифы — интервал от 1 минуты и проверки из нескольких регионов.