CSRF-beskyttelse og POST-flowet
Håndtér GET/POST-submitforløbet sikkert.
CSRF-beskyttelse og POST-flowet er en gratis Django Academy-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Django Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Django Academy-kurset indeholder 4 lektioner i alt.
Hvad CSRF er
CSRF narrer en logget ind-bruger til at sende en skjult forespørgsel. Django blokerer den, så angribere ikke kan handle på brugerens vegne. 🔒
Beskyttelse er slået til
Django aktiverer CsrfViewMiddleware som standard, så alle ubeskyttede POST-forespørgsler afvises, indtil du tilføjer det rigtige token.
Tagget csrf_token
Tilføj {% csrf_token %} i hver POST-formular. Det indsætter et skjult felt med et hemmeligt token, der er unikt for sessionen.
<form method="post">
{% csrf_token %}
</form>Derfor virker det
Tokenet beviser, at forespørgslen kom fra din egen side. En forfalsket formular på et andet websted kan ikke gætte det, så POST-forespørgslen mislykkes.
GET viser formularen
En GET-forespørgsel viser en tom, ubundet formular, så brugeren kan begynde at skrive sit input.
if request.method == "GET":
form = ContactForm()POST sender dataene
En POST sender de udfyldte værdier tilbage. Du binder dem til formularen og kører valideringen, før du gør noget andet.
if request.method == "POST":
form = ContactForm(request.POST)Validér, og handl derefter
Hvis den bundne formular is_valid(), behandler du cleaned_data: gemmer dataene, sender en mail eller gør det, formularen ellers er beregnet til.
if form.is_valid():
save(form.cleaned_data)Omdirigér efter succes
Ved succes skal du omdirigere til en ny URL. Mønstret Post/Redirect/Get forhindrer, at en opdatering sender dataene igen.
return redirect("thanks")Gengiv siden igen ved fejl
Hvis valideringen mislykkes, skal du gengive den samme skabelon igen med den tilknyttede formular. Den indeholder stadig inputtet og viser hver fejl.
return render(request, "contact.html",
{"form": form})Det fulde mønster
Strukturen GET-til-visning, POST-til-behandling er den standardiserede formularvisning. Én visning håndterer begge metoder på en enkel måde.
form = ContactForm(request.POST or None)
if form.is_valid():
return redirect("thanks")Vær opmærksom på AJAX-anmodninger
JavaScript-POST-anmodninger skal sende tokenet i X-CSRFToken-headeren, som læses fra csrftoken-cookien, ellers afviser Django dem.
Hurtigt tjek
Test din viden om CSRF og POST.
Opsummering
Tilføj csrf_token til alle POST-formularer. GET viser formularen, POST validerer den og omdirigerer derefter ved succes eller gengiver siden igen ved fejl. ✅
Lær Python med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 30
- Lektioner
- 120
Ofte stillede spørgsmål
Er lektionen “CSRF-beskyttelse og POST-flowet” gratis?
Ja — alle 3 lektioner i læringssporet Django Academy, inklusive “CSRF-beskyttelse og POST-flowet”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Django Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “CSRF-beskyttelse og POST-flowet”?
Håndtér GET/POST-submitforløbet sikkert. Du øver dig i Django Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Django Academy?
Der kræves ingen tidligere erfaring. Django Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.
Hvor lang tid tager lektionen “CSRF-beskyttelse og POST-flowet”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Django Academy-lektion?
Ja. Alle Django Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Definér en forms.Form
- is_valid og cleaned_data
- Render forms i templates
- CSRF-beskyttelse og POST-flowet