Django Academy · Aula

Proteção CSRF e o Fluxo POST

Lide com segurança com o ciclo de envio GET/POST

Aula 4 de 413 etapas

Proteção CSRF e o Fluxo POST é uma aula grátis de Django Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Django Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Django Academy inclui 4 aulas no total.

Partes desta aula ainda não foram traduzidas e aparecem em inglês.

What CSRF Is

CSRF tricks a logged-in user into submitting a hidden request. Django blocks it so attackers cannot act on a user's behalf. 🔒

Protection Is On

Django enables CsrfViewMiddleware by default, so every unprotected POST is rejected until you add the right token.

The csrf_token Tag

Add {% csrf_token %} inside every POST form. It injects a hidden field with a per-session secret token.

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

Why It Works

The token proves the request came from your own page. A forged form on another site cannot guess it, so the POST fails.

GET Shows the Form

A GET request displays a blank, unbound form so the user can start typing their input.

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

POST Submits the Data

A POST sends the filled values back. You bind them to the form and run validation before doing anything.

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

Validate Then Act

If the bound form is_valid(), process cleaned_data: save it, send an email, or whatever the form is for.

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

Redirect After Success

On success, redirect to a new URL. This Post/Redirect/Get pattern stops a refresh from resubmitting the data.

return redirect("thanks")

Re-render on Errors

If validation fails, re-render the same template with the bound form. It still holds the input and shows each error.

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

The Full Pattern

This GET-to-show, POST-to-process shape is the standard form view. One view handles both methods cleanly.

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

Mind AJAX Requests

JavaScript POSTs must send the token in the X-CSRFToken header, read from the csrftoken cookie, or Django rejects them.

Quick Check

Check your CSRF and POST knowledge.

Recap

Add csrf_token to every POST form. GET shows the form, POST validates it, then redirect on success or re-render on errors. ✅

Grátis para começar

Aprenda Python com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
30
Aulas
120

Perguntas Frequentes

A aula “Proteção CSRF e o Fluxo POST” é grátis?

Sim — o texto completo de “Proteção CSRF e o Fluxo POST” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Django Academy, atualize para CoddyKit PRO. O curso de Django Academy inclui 4 aulas no total.

O que vou aprender em “Proteção CSRF e o Fluxo POST”?

Lide com segurança com o ciclo de envio GET/POST Você pratica Django Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Django Academy?

Nenhuma experiência prévia é necessária. Django Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “Proteção CSRF e o Fluxo POST”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Django Academy?

Sim. Cada aula de Django Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Definindo um forms.Form
  2. is_valid e cleaned_data
  3. Renderizando Formulários em Templates
  4. Proteção CSRF e o Fluxo POST
← Voltar para Django Academy