19 травня 2026 р.
Посилили auth-flow і базову безпеку після зовнішнього Tier 2 аудиту
Після зовнішнього security-аудиту закрили те, що можна виправити в коді без додаткових сервісів і платних підписок. Фокус оновлення — зменшити ризики навколо авторизації, відкритої реєстрації, редіректів, cron endpoint і базових production-заголовків.
Коротко
Додали PKCE для Supabase Auth, серверний login/register з rate-limit, безпечні редіректи, security headers, security.txt і опційний whitelist email-ів.
Що додали
- + PKCE flow для браузерного Supabase Auth client.
- + Окремий /auth/callback для підтвердження email і зміни пароля через exchangeCodeForSession.
- + Санітизацію next-redirect після логіну, реєстрації та auth callback, щоб не було open redirect.
- + Серверні API routes для логіну й реєстрації замість прямого signIn/signUp з клієнта.
- + Rate-limit для спроб логіну й реєстрації по IP та email на базі наявної таблиці audit_rate_limits.
- + Опційний BASE_ALLOWED_EMAILS whitelist для обмеження доступу до кабінету конкретними email або доменами.
- + Security headers для всіх сторінок: HSTS, CSP, X-Frame-Options, nosniff, Referrer-Policy і Permissions-Policy.
- + Файл /.well-known/security.txt з контактом для повідомлення про проблеми безпеки.
- + Timing-safe перевірку CRON_SECRET у protected maintenance endpoint.
- + Production removeConsole для console.log без видалення console.error і console.warn.
- + SQL-міграцію для відкликання зайвих anon/public table і function grants у Supabase.
Що прибрали
- - Прямий клієнтський signInWithPassword/signUp як основний шлях авторизації.
- - Небезпечний редірект на довільний next URL після auth callback.
- - Просте строкове порівняння CRON_SECRET.
Коментар до релізу
Supabase Site URL, redirect URLs, email templates, CAPTCHA і запуск database-grants migration налаштовуються в Supabase Dashboard та SQL Editor, тому потребують окремого ручного кроку.
Whitelist email-ів вимкнений, доки не задано BASE_ALLOWED_EMAILS у production env, щоб випадково не закрити публічну реєстрацію.