image

Olá pessoal, meu nome é Mauricio Junior e hoje eu vou falar um pouco sobre o Antiforgery Token dentro da página web e usando a tecnologia Razor da Microsoft.

Utilizado:

  • Microsoft .NET 6
  • Linguagem C#
  • Tecnologia: Web Razor
  • Ferramenta: Visual Studio ou Rider

Basicamente esse componente é feito para protejer a sua página, seu sistema web ou seu site de pessoas que ficam tentando descobrir como fazer uma requisição no seu site de maneira automática ou utilizando robôs. Ele querem tentar de alguma forma invadir ou ficar envinando vírus, links ou malwares através do seu site.

A Microsoft criou um token que fica escondido na sua página que você pode utilizar ele para verificar se é o mesmo token que está chegando na requisição. Antes de descobrir sobre esse token, eu criei uma outra ferramenta que faz soma e o usuário precisa somar o valor e colocar o total dentro do campo. Esse era o meu jeito de evitar os envios indevidos.

Veja o que eu uso na imagem:

Image

Antiforgery

Para utilizar o Antiforgery é necessário fazer o download no NuGet package com o nome Microsoft.AspNetCore.Antiforgery/2.2.0 e todos os pacotes que ele usa vai incluir em seu projeto. Depois disso, inclua em seu arquivo program.cs. Veja o código abaixo:

builder.Services.AddAntiforgery(option =>
{
    option.FormFieldName = "sua_campo_personalizado";
    option.HeaderName = "seu_header_nome_personalizado";
});

Código 1 - Os campos você pode adicionar e depois buscar em seu código C#

Na parte do HTML do Razor você pode usar @Html.AntiForgeryToken() para ver o token gerado.

Na classe em C# basta colocar o atributo [AutoValidateAntigforgeryToken], veja o código 2.

[AutoValidateAntiforgeryToken]
public class IndexModel : PageModel
{
    private readonly ILogger<IndexModel> _logger;

    public IndexModel(ILogger<IndexModel> logger)
    {
        _logger = logger;
    }

    [HttpGet]
    public void OnGet()
    {

    }
}

Código 2 - Adicionando o atributo na classe.

É bom colocar apenas nas páginas onde você precisa realmente que o token seja validado. Você pode ver o código fonte completo aqui https://github.com/mauricio-junior/Using_AntifogeryToken.

Espero que ter ajudado e qualquer coisa pode entrar em contato comigo pelo site www.mauriciojunior.net.