Junior — Middle
Que tipos de consultas considera mais seguras e por quê?
sobes.tech IA
Resposta da IA
As mais seguras são as consultas parametrizadas (prepared) e as consultas ORM, que escapam automaticamente os dados de entrada.
A razão é que evitam injeções SQL — quando um atacante insere código SQL malicioso através da entrada do utilizador.
Exemplo:
-
Em uma consulta parametrizada, os parâmetros são passados separadamente do código SQL, o que exclui a possibilidade de alterar a estrutura da consulta.
-
Ao contrário da concatenação de strings, onde a entrada do utilizador é inserida diretamente na consulta.
Por exemplo, em Java com JDBC:
String sql = "SELECT * FROM users WHERE username = ?";
PreparedStatement ps = connection.prepareStatement(sql);
ps.setString(1, userInput);
ResultSet rs = ps.executeQuery();
Este método é mais seguro do que:
String sql = "SELECT * FROM users WHERE username = '" + userInput + "'";
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery(sql);
Por isso, para segurança em testes e desenvolvimento, recomenda-se usar consultas parametrizadas.