Documentação do Symfony2
Renderizada do repositório symfony-docs-pt-BR no Github

Usando Proteção CSRF no Formulário de Login

Ao usar um formulário de login, você deve certificar-se que ele está protegido contra CSRF (Cross-site request forgery). O componente de Segurança já possui suporte integrado para CSRF. Neste artigo você vai aprender como pode usá-lo em seu formulário de login.

Note

Ataques CSRF de login são um pouco menos conhecidos. Veja Forjar Solicitações de Login se você está curioso para saber mais detalhes.

Configurando a Proteção CSRF

Primeiro, configure o componente de Segurança para que ele possa usar a proteção CSRF. O componente de Segurança precisa de um provedor de token CSRF. Você pode usar o provider padrão disponível no componente de Formulário:

O componente de Segurança pode ser configurado ainda, mas essa é toda a informação que ele precisa para utilizar CSRF no formulário de login.

Renderizando o campo CSRF

Agora que o componente de Segurança irá verificar o token CSRF, você tem que adicionar um campo hidden no formulário de login que contém o token CSRF. Por padrão, esse campo é chamado _csrf_token. Esse campo oculto deve conter o token CSRF, que pode ser gerado usando a função csrf_token. Essa função requer um ID de token, que deve ser definido como authenticate ao usar o formulário de login:

Após isso, você tem seu formulário de login protegido contra ataques CSRF.

Tip

Você pode alterar o nome do campo definindo csrf_parameter e alterando o ID de token setando intention em sua configuração: