Injecao em ORM
O que é Injecao em ORM?
Injecao em ORMInjecao contra aplicacoes que usam um ORM, abusando de queries dinamicas, mass-assignment ou escapes para SQL bruto para manipular o acesso a dados.
A injecao em ORM ocorre quando uma entrada influenciada pelo atacante chega a um ORM (Hibernate, Entity Framework, SQLAlchemy, ActiveRecord, Sequelize, Prisma, Django ORM) por APIs que constroem queries dinamicamente. Padroes vulneraveis: concatenacao HQL/JPQL, where(string) interpolado em ActiveRecord, Op.literal em Sequelize, text() formatado em SQLAlchemy, mass-assignment de atributos nao previstos e parametros inseguros de ordenacao ou filtragem em APIs JSON. As consequencias vao da injecao SQL classica ao contorno de autorizacao quando os controlos vivem na camada ORM. Defesas: query builders parametrizados, allowlists para campos ordenaveis/filtraveis, strong parameters e evitar escapes para SQL bruto com entradas nao confiaveis.
● Exemplos
- 01
Uma app Rails a chamar User.where("name = '#{params[:q]}'") expoe SQL injection via ORM.
- 02
Endpoint Sequelize que aceita order do atacante e o passa por Op.literal.
● Perguntas frequentes
O que é Injecao em ORM?
Injecao contra aplicacoes que usam um ORM, abusando de queries dinamicas, mass-assignment ou escapes para SQL bruto para manipular o acesso a dados. Pertence à categoria Ataques e ameaças da cibersegurança.
O que significa Injecao em ORM?
Injecao contra aplicacoes que usam um ORM, abusando de queries dinamicas, mass-assignment ou escapes para SQL bruto para manipular o acesso a dados.
Como se defender contra Injecao em ORM?
As defesas contra Injecao em ORM costumam combinar controles técnicos e práticas operacionais, conforme detalhado na definição acima.
Quais são outros nomes para Injecao em ORM?
Nomes alternativos comuns: Injecao HQL, Injecao JPQL.