Flask Academy · Aula

validate_on_submit e tokens CSRF

Processe envios válidos e bloqueie falsificações.

Aula 3 de 413 etapas

validate_on_submit e tokens CSRF é uma aula grátis de Flask Academy no CoddyKit. Esta é a aula 3 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 Flask Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Flask Academy inclui 4 aulas no total.

O método essencial

Flask-WTF oferece um método que verifica tudo de uma só vez. validate_on_submit é o núcleo do processamento seguro de qualquer formulário. 🔑

O que ele realmente verifica

validate_on_submit retorna True somente quando a requisição é um POST e todos os validadores são aprovados. Uma única chamada cobre as duas condições.

if form.validate_on_submit():
    pass  # safe to use the data

O padrão de visualização

Este formato se repete em toda aplicação Flask: crie o formulário, tome uma decisão com base em validate_on_submit e, depois, continue até renderizar a página.

form = LoginForm()
if form.validate_on_submit():
    return redirect('/home')
return render_template('login.html', form=form)

Enviado versus válido

Não confunda os dois. is_submitted verifica apenas o método, enquanto validate_on_submit também confirma que os dados passaram por todas as regras.

form.is_submitted()        # POST? 
form.validate_on_submit()  # POST and valid?

Por que CSRF é importante

Um ataque de CSRF engana um usuário conectado para que ele envie um formulário que nunca pretendeu enviar. Os tokens comprovam que a requisição veio da sua própria página.

SECRET_KEY é obrigatório

Os tokens CSRF são assinados, portanto o Flask precisa de uma SECRET_KEY. Sem ela, a validação falha e o Flask-WTF se recusa a proteger o formulário.

app.config['SECRET_KEY'] = 'change-me-in-production'

O token na página

A chamada a hidden_tag incorpora o token assinado como uma entrada oculta. O navegador o envia de volta em cada envio.

{{ form.hidden_tag() }}

A validação compara tokens

Ao enviar, o Flask-WTF compara o token enviado com o token da sessão. Um token ausente ou expirado faz validate_on_submit retornar False.

if not form.validate_on_submit():
    pass  # bad token or failed rule

Verificar por que falhou

Quando a validação falhar, consulte form.errors. Ele associa cada nome de campo à lista de mensagens que explicam o problema.

if not form.validate_on_submit():
    print(form.errors)

Processar e redirecionar

Depois de um envio bem-sucedido, finalize com um redirecionamento. Isso segue o padrão PRG e impede que uma atualização envie os dados duas vezes.

if form.validate_on_submit():
    save(form.data)
    return redirect('/done')

Nunca desative CSRF sem critério

Você pode desativar CSRF para APIs, mas nunca para formulários do navegador. Manter a proteção ativada é o que torna o Flask-WTF útil.

Verificação rápida

Quando form.validate_on_submit() retorna True?

Recapitulação

Você usou validate_on_submit para verificar o método e as regras, definiu uma SECRET_KEY para os tokens CSRF assinados e redirecionou após o sucesso. 🛡️

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 “validate_on_submit e tokens CSRF” é grátis?

Sim — o texto completo de “validate_on_submit e tokens CSRF” é 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 Flask Academy, atualize para CoddyKit PRO. O curso de Flask Academy inclui 4 aulas no total.

O que vou aprender em “validate_on_submit e tokens CSRF”?

Processe envios válidos e bloqueie falsificações. Você pratica Flask 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 Flask Academy?

Nenhuma experiência prévia é necessária. Flask 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 3 de 4.

Quanto tempo leva a aula “validate_on_submit e tokens CSRF”?

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 Flask Academy?

Sim. Cada aula de Flask 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. Defina uma classe FlaskForm
  2. Renderize e envie um formulário
  3. validate_on_submit e tokens CSRF
  4. Validadores personalizados e erros de campo
← Voltar para Flask Academy