Falha de segurança: Mass Assignment Attack
Closed this issue · 0 comments
patrickhacens commented
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