0Pricing
Django Academy · Lekcja

Ochrona CSRF i przebieg żądania POST

Bezpiecznie obsługiwać cykl wysyłania GET/POST

Ochrona CSRF i przebieg żądania POST to bezpłatna lekcja Django Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Django Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Django Academy zawiera 4 lekcji w sumie.

Czym jest CSRF

CSRF nakłania zalogowanego użytkownika do wysłania ukrytego żądania. Django je blokuje, aby napastnicy nie mogli działać w imieniu użytkownika. 🔒

Ochrona jest włączona

Django domyślnie włącza CsrfViewMiddleware, więc każdy niezabezpieczony POST zostaje odrzucony do czasu dodania właściwego tokenu.

Znacznik csrf_token

Dodaj {% csrf_token %} do każdego formularza POST. Wstawia on ukryte pole z tajnym tokenem przypisanym do sesji.

<form method="post">
  {% csrf_token %}
</form>

Dlaczego to działa

Token potwierdza, że żądanie pochodzi z Twojej własnej strony. Sfałszowany formularz z innej witryny nie może go odgadnąć, więc POST kończy się niepowodzeniem.

GET wyświetla formularz

Żądanie GET wyświetla pusty, niezwiązany z danymi formularz, aby użytkownik mógł rozpocząć wpisywanie danych.

if request.method == "GET":
    form = ContactForm()

POST przesyła dane

POST odsyła wypełnione wartości. Powiąż je z formularzem i przeprowadź walidację, zanim wykonasz jakiekolwiek działanie.

if request.method == "POST":
    form = ContactForm(request.POST)

Najpierw waliduj, potem działaj

Jeśli powiązany formularz przejdzie is_valid(), przetwórz cleaned_data: zapisz dane, wyślij wiadomość e-mail lub wykonaj inne działanie, do którego służy formularz.

if form.is_valid():
    save(form.cleaned_data)

Przekierowanie po sukcesie

Po pomyślnym zakończeniu przekieruj użytkownika do nowego adresu URL. Wzorzec Post/Redirect/Get zapobiega ponownemu wysłaniu danych po odświeżeniu strony.

return redirect("thanks")

Ponowne renderowanie po wystąpieniu błędów

Jeśli walidacja się nie powiedzie, ponownie wyrenderuj ten sam szablon z powiązanym formularzem. Formularz nadal zawiera wprowadzone dane i wyświetla każdy błąd.

return render(request, "contact.html",
    {"form": form})

Pełny wzorzec

Schemat GET do wyświetlania i POST do przetwarzania to standardowy widok formularza. Jeden widok przejrzyście obsługuje obie metody.

form = ContactForm(request.POST or None)
if form.is_valid():
    return redirect("thanks")

Pamiętaj o żądaniach AJAX

Żądania POST wysyłane przez JavaScript muszą przekazywać token w nagłówku X-CSRFToken, odczytany z ciasteczka csrftoken, w przeciwnym razie Django je odrzuci.

Szybkie sprawdzenie

Sprawdź swoją wiedzę na temat CSRF i POST.

Podsumowanie

Dodawaj csrf_token do każdego formularza POST. GET wyświetla formularz, POST go waliduje, a następnie po pomyślnym zakończeniu następuje przekierowanie, a po błędach ponowne renderowanie. ✅

Często zadawane pytania

Czy lekcja „Ochrona CSRF i przebieg żądania POST” jest bezpłatna?

Tak — pełny tekst „Ochrona CSRF i przebieg żądania POST” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Django Academy, przejdź na CoddyKit PRO. Kurs Django Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Ochrona CSRF i przebieg żądania POST”?

Bezpiecznie obsługiwać cykl wysyłania GET/POST Ćwiczysz Django Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Django Academy?

Nie wymagamy żadnego doświadczenia. Django Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „Ochrona CSRF i przebieg żądania POST”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Django Academy?

Tak. Każda lekcja Django Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Definiowanie forms.Form
  2. is_valid i cleaned_data
  3. Renderowanie formularzy w szablonach
  4. Ochrona CSRF i przebieg żądania POST
← Powrót do Django Academy