Zestawy rozmówBlog

Twoja wymarzona praca? Lets Git IT.
Interaktywna platforma przygotowująca do rozmów technicznych dla nowoczesnych programistów.

XGitHub

Platforma

  • Kategorie

Zasoby

  • Blog
  • O aplikacji
  • FAQ
  • Sugestie

Prawne

  • Polityka prywatności
  • Regulamin

© 2026 LetsGit.IT. Wszelkie prawa zastrzeżone.

LetsGit.IT/Kategorie/Next.js
Next.jshard

Server Actions — co to jest i jaką zasadę bezpieczeństwa trzeba pamiętać?

Tagi
#server-actions#security#validation
Wróć do kategoriiPrzejdź do quizu

Odpowiedź

Server Actions to funkcje uruchamiane na serwerze, które można wywołać z formularzy lub Client Components. Traktuj je jak publiczne endpointy: waliduj input i wymuszaj auth/autoryzację na serwerze (nie ufaj UI).

Odpowiedź zaawansowana

Głębiej

Server Actions to funkcje po stronie serwera (często oznaczone `'use server'`), które można wywołać z:

  • wysyłki formularza `<form action={myAction}>`,
  • Client Components przez propsy.

Działają na serwerze, więc mają dostęp do sekretów, bazy danych i usług wewnętrznych. Mogą też integrować się z unieważnianiem cache (`revalidatePath`, `revalidateTag`) po mutacjach.

Przykład

'use server'

export async function updateName(formData: FormData) {
  const name = String(formData.get('name') ?? '')
  if (name.length < 2) throw new Error('Invalid name')

  const user = await requireUser()
  await db.user.update({ where: { id: user.id }, data: { name } })
}

Zasada bezpieczeństwa

Traktuj Server Action jak **publiczny endpoint API**:

  • waliduj i sanityzuj input,
  • uwierzytelnij wywołującego,
  • wymuś autoryzację operacji (własność/role),
  • nie ufaj temu, że „przycisk jest ukryty w UI”.

Typowe pułapki

  • Brak autoryzacji (dowolny zalogowany może wywołać akcję).
  • Brak walidacji inputu (ryzyko mass assignment/injection).
  • Przypadkowe zwracanie wrażliwych danych do klienta.

Powiązane pytania

Next.js
Unieważnianie cache: co robią `revalidatePath` i `revalidateTag`?
#nextjs#cache#revalidate
Next.js
Server Actions (`'use server'`): co to jest i jakie są typowe ograniczenia?
#nextjs#server-actions#mutations
Next.js
Auth w Next.js App Router: jak zrobić go bezpiecznie i SSR-friendly?
#nextjs
#auth
#cookies
Next.js
Zmienne środowiskowe w Next.js: co oznacza prefix `NEXT_PUBLIC_`?
#nextjs#env#security
Next.js
Route Handler vs Server Action — jak wybrać?
#server-actions#route-handlers#security
Bezpieczeństwo
Jak bezpiecznie przechowywać hasła?
#passwords#hashing#security