lucass-teixeira/ContosoPizza

Falha de segurança: Mass Assignment Attack

Closed this issue · 0 comments

Na maneira como estamos implantando os payloads das transações são mapeados pelas controllers. Estamos usando as nossas Model/Domain (classes que representam o banco) como injeção de dados e isso causa uma grande falha pois essas classes também mapeiam suas relações (Pizza mapeia Item que mapeia order por exemplo) e isso pode ser usado para cadastrar uma ordem através do cadastro de pizza.

A maneira mais comum de se resolver é usar DTOs (Data Transfer Objects) que são classes similares ao nosso Domain que são usados para input/output dentro da API.

Para concluir essa issue é requerido as seguintes condições:

  • Nenhuma model é usada para mapear entrada ou saída dentro da aplicação
  • Nenhum campo além dos que temos intenção de ser cadastrados deverão ser cadastrados.

mais informações sobre o attack https://en.wikipedia.org/wiki/Mass_assignment_vulnerability