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
- Definiowanie forms.Form
- is_valid i cleaned_data
- Renderowanie formularzy w szablonach
- Ochrona CSRF i przebieg żądania POST