1
resposta

Como o servidor valida o token "ValidateAntiForgeryToken"

Olá Boa Noite!

1 - Poderia me ajudar a entender como o sistema valida o token da requisição que chega na action que tem o atributo "ValidateAntiForgeryToken"? Pois o que me intriga é: Como ele define uma chave para descriptografar e decidir se é valido ou não. 2- Esta maneira de autenticação é a mais indicada mesmo ou deveria optar por implementar outra maneira, como jwt , por exemplo.. Obrigado!

1 resposta

Oi, Marcelo, tudo bem?

O AntiForgeryToken protege sua sua aplicação contra ataques CSRF (Cross Site Request Forgery). Isto é, se um outro site estiver fazendo um POST em uma action da sua aplicação, ela não conseguirá, pois no header daquela requisição não haverá o token esperado pelo servidor da sua aplicação.

O processo de validação é apresentado neste documento da Microsoft:

https://docs.microsoft.com/en-us/aspnet/web-api/overview/security/preventing-cross-site-request-forgery-csrf-attacks

  1. O cliente solicita uma página HTML que contenha um formulário.
  2. O servidor inclui dois tokens na resposta. Um token é enviado como um cookie. O outro é colocado em um campo de formulário oculto. Os tokens são gerados aleatoriamente para que um adversário não consiga adivinhar os valores.
  3. Quando o cliente envia o formulário, ele deve enviar os dois tokens de volta ao servidor. O cliente envia o token de cookie como um cookie e envia o token de formulário dentro dos dados do formulário. (Um cliente do navegador faz isso automaticamente quando o usuário envia o formulário.)
  4. Se uma solicitação não incluir os dois tokens, o servidor não permitirá a solicitação.