DEV Community

Cover image for Como evitar SQL Injection no MongoDB
William Koller
William Koller

Posted on • Edited on

12

Como evitar SQL Injection no MongoDB

O que é SQL Injection?

SQL Injection é um ataque no qual código malicioso é passado para um servidor SQL, que o executa. O ataque pode resultar em acesso não autorizado a dados confidenciais, ou destruição de dados críticos.

Como saber se uma query não previne SQL Injection?!

Neste exemplo estou usando CodeQL, o que é CodeQL?!

  • É um mecanismo de análise de código que descobre vulnerabilidades.

Nesse exemplo na aba de security do github:

Image description

O code sacanner nos avisa, que se uma consulta de banco de dados (como uma consulta SQL ou NoSQL) for criada a partir de dados fornecidos pelo usuário sem higienização suficiente, um usuário mal-intencionado poderá executar consultas de banco de dados mal-intencionadas.

Como recomendação para queries NoSQL, podemos usar um operador como $eq do MongoDB

Iremos fazer um refactor no UsersRepository para evitar SQL Injection:

Image description

Depois de rodar o Github Actions, notamos que não tem mais alerta na aba de security no github:

Image description

E assim não temos mais alerta de SQL Injection;

Repo de exemplo:

https://github.com/williamkoller/my-readings

Espero ter te ajudado de alguma maneira, pode comentar e compartilhar.

Top comments (1)

Collapse
 
renatoleal_dev profile image
Renato Marcondes Leal

Muito bom Will. Parabéns e obrigado por compartilhar!

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay