Protezione CSRF e flusso POST
Gestisca in sicurezza il ciclo di invio GET/POST
Protezione CSRF e flusso POST è una lezione Django Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Django Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Django Academy include 4 lezioni in totale.
Che cos'è CSRF
CSRF induce un utente autenticato a inviare una richiesta nascosta. Django la blocca, impedendo agli aggressori di agire per conto dell'utente. 🔒
La protezione è attiva
Django abilita CsrfViewMiddleware per impostazione predefinita, quindi ogni POST non protetto viene rifiutato finché non aggiunge il token corretto.
Il tag csrf_token
Aggiunga {% csrf_token %} all'interno di ogni form POST. Inserisce un campo nascosto con un token segreto specifico della sessione.
<form method="post">
{% csrf_token %}
</form>Perché funziona
Il token dimostra che la richiesta proviene dalla propria pagina. Un form contraffatto su un altro sito non può indovinarlo, quindi il POST fallisce.
GET mostra il form
Una richiesta GET visualizza un form vuoto e non associato, così l'utente può iniziare a inserire i dati.
if request.method == "GET":
form = ContactForm()POST invia i dati
Un POST invia nuovamente i valori compilati. Li associ al form ed esegui la validazione prima di procedere.
if request.method == "POST":
form = ContactForm(request.POST)Convalidare prima di agire
Se il form associato is_valid(), elabori cleaned_data: lo salvi, invii un'email o esegua qualunque operazione prevista dal form.
if form.is_valid():
save(form.cleaned_data)Reindirizzare dopo il successo
In caso di successo, eseguite un redirect verso un nuovo URL. Questo schema Post/Redirect/Get impedisce che un aggiornamento della pagina invii nuovamente i dati.
return redirect("thanks")Eseguire nuovamente il rendering in caso di errori
Se la convalida non va a buon fine, eseguite nuovamente il rendering dello stesso template con il modulo associato. Il modulo conserva comunque i dati inseriti e mostra ogni errore.
return render(request, "contact.html",
{"form": form})Lo schema completo
Questa struttura GET per la visualizzazione e POST per l'elaborazione è la vista standard dei moduli. Una sola vista gestisce entrambi i metodi in modo ordinato.
form = ContactForm(request.POST or None)
if form.is_valid():
return redirect("thanks")Attenzione alle richieste AJAX
Le richieste POST JavaScript devono inviare il token nell'header X-CSRFToken, letto dal cookie csrftoken, altrimenti Django le rifiuta.
Verifica rapida
Verificate le vostre conoscenze su CSRF e POST.
Riepilogo
Aggiungete csrf_token a ogni modulo POST. GET visualizza il modulo, POST lo convalida, quindi eseguite un redirect in caso di successo oppure un nuovo rendering in caso di errori. ✅
Impara Python con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 30
- Lezioni
- 120
Domande Frequenti
La lezione «Protezione CSRF e flusso POST» è gratuita?
Sì — il testo completo di «Protezione CSRF e flusso POST» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Django Academy, passa a CoddyKit PRO. Il corso Django Academy include 4 lezioni in totale.
Cosa imparerò in «Protezione CSRF e flusso POST»?
Gestisca in sicurezza il ciclo di invio GET/POST Eserciti Django Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Django Academy?
Non è richiesta alcuna esperienza precedente. Django Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.
Quanto tempo richiede la lezione «Protezione CSRF e flusso POST»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Django Academy?
Sì. Ogni lezione Django Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Definire un forms.Form
- is_valid e cleaned_data
- Visualizzare i form nei template
- Protezione CSRF e flusso POST