Usando Antiforgery Token

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.