Tech Review: use ASP.NET MVC no combate à falsificação

Publicado:

Leitura 3 minutos

Tech Review: use ASP.NET MVC no combate à falsificação

Os browsers modernos se defendem de ataques cross-site scripting. Mas existe um outro tipo de ataque que é ainda mais fácil de lançar: cross-site request forgery (ou CSRF).

Os meliantes que usam CSRF criam um website com elementos clicáveis que colocam as operações maliciosas em funcionamento. A página falsa geralmente contém um script escondido que coleta os dados de um computador local e os envia para o servidor do cibercriminoso. Como você pode se proteger?

As melhores notícias de tecnologia B2B
Acompanhe todas as novidades diretamente na sua caixa de entrada

O ASP.NET MVC oferece uma solução: ele permite que você publique funcionalidades de servidor por meio de um método público de uma classe controladora. Se o método for crítico, você pode adicionar atributos para prevenir ataques CSRF. O ASP.NET MVC traz um método de ajuda para gerar marcação ad hoc HTML e um atributo ValidateAntiForgeryToken:

[HttpPost]

[ValidateAntiForgeryToken]

public ActionResult Update

(Customer customer)

{

:

}

O atributo HttpPost requer uma solicitação de POST para executar o método. Só isso já corta qualquer solicitação feita por meio de um GET simples. O ValidadeAntiForgeryToken também introduz o executor de comando do método ASP.NET MVC para procurar por algum conteúdo especial na solicitação principal antes de executar o código. 

O ValidateAntiForgeryToken contém um código que é ativado durante a ação do método requisitado, garantindo que a solicitação postada contenha um cookie e campo de formulário com um nome fixo comum. Se alguns desses itens estiver faltando, é aberta uma exceção. Esse ajudante de ASP.NET MVC em HTML permite que você insira essa linha em um website:

O método Html.AntiForgeryToken cria um cookie em seu computador e adiciona um campo oculto ao formulário, como esse:

 

value=”j3Cj++/JUcS+kUMy/9Obj/

oM6ZW7vZozNo7+S” />

Se o alvo do formulário incluir o atributo ValidateAntiForgeryToken, o conteúdo do cookie e o campo de inserção são compensados antes da ação do método ser autorizada. Portanto, os invasores não poderão criar cookies válidos porque eles não saberão qual conteúdo colocar neles. E mesmo que o computador da vítima já contenha um cookie anti-forgery, o conteúdo do cookie não poderá ser lido via script para conseguir um campo de inserção on-the-fly. Um anti-forgery cookie é, na verdade, HttpOnly e não pode ser acessado via script. 

*Dino Esposito é MVP da Microsoft e consultor independente de software.

Notícias relacionadas

Ver mais Seta para direita