Wypuszczenie aplikacji Next.js z Cursorem, v0 albo Boltem jest szybkie, ale szybkość ukrywa luki, których nie widzisz, dopóki ktoś nie znajdzie ich za ciebie. Ta lista kontrolna obejmuje absolutne minimum przed kliknięciem deploy.
Zmienne środowiskowe: uważaj na NEXT_PUBLIC
Wszystko, co zaczyna się od NEXT_PUBLIC_, jest wpiekane w bundle przeglądarki. Każdy może to odczytać, otwierając DevTools. Nigdy nie umieszczaj tam prywatnego klucza API, tokenu usługi ani sekretu twojej bazy danych.
Zarezerwuj ten prefiks dla wartości naprawdę publicznych, jak URL twojego API albo ID analityki. Zmienne bez prefiksu żyją tylko na serwerze: używaj ich do kluczy prywatnych i odczytuj je tylko z Server Components, API routes albo Server Actions.
API routes: zawsze waliduj i autoryzuj
API route nie jest prywatny tylko dlatego, że leży w twoim folderze. To publiczny URL, który każdy może wywołać za pomocą curl. Sprawdzaj sesję użytkownika w każdym handlerze, nie tylko w interfejsie. To, że przycisk się nie pojawia, nie powstrzyma kogoś przed uderzeniem w endpoint bezpośrednio.
Waliduj ciało żądania, zanim dotkniesz bazy danych, i nigdy nie ufaj, że frontend wyśle czyste dane. Atakujący pisze własny frontend.
Nagłówki bezpieczeństwa
Domyślnie Next.js nie wysyła żadnych nagłówków obronnych. W next.config.js dodaj przynajmniej Strict-Transport-Security, X-Content-Type-Options, X-Frame-Options i Content-Security-Policy. Te nagłówki ograniczają clickjacking, sniffing typów i wykonywanie wstrzykniętych skryptów.
Sekrety wyciekające do klienta
Łatwo o to, żeby prywatny klucz wylądował w Client Component przez pomyłkę, zwłaszcza gdy AI przepisuje pliki. Przeszukaj swój końcowy bundle pod kątem ciągów w rodzaju sk_, service_role albo URL-i webhooków. Jeśli pojawiają się w serwowanym JavaScripcie, są już skompromitowane: zrotuj je i przenieś na serwer.
Pliki, które nie powinny być osiągalne
Upewnij się, że .env, .git i pliki kopii zapasowych nie są serwowane na produkcji. .env osiągalny przez URL to najprostsza droga do opróżnienia twojej bazy danych. Sprawdź też, że package.json nie odsłania wewnętrznych ścieżek ani zależności, które zdradzają twój stack.
Sprawdź to wszystko w 30 sekund
Przechodzenie tej listy ręcznie przy każdym deployu jest żmudne i łatwo o nim zapomnieć. Scanaris wykonuje kontrole tylko do odczytu na twojej opublikowanej stronie: nagłówki, sekrety odsłonięte w JavaScripcie, osiągalne wrażliwe pliki i ustawienia ciasteczek. Każde znalezisko przychodzi z promptem gotowym do wklejenia w twoją AI, żebyś naprawił to bez zgadywania. Przeskanuj ją, zanim ogłosisz swój start.