Durante um projeto de desenvolvimento de uma solução, um...
Imagem de fundo

Durante um projeto de desenvolvimento de uma solução, um...

Durante um projeto de desenvolvimento de uma solução, um desenvolvedor constrói a seguinte função em Python:


def autenticar(usuario, senha):

query = f"SELECT * FROM usuarios WHERE

nome = '{usuario}' AND senha = '{senha}'"

resultado = banco.executar(query)

if resultado:

return "Login bem-sucedido"

else:

return "Credenciais inválidas"


luz dos princípios e boas práticas de código seguro, assinale a alternativa CORRETA.


A

O código está seguro, pois utiliza interpolação de strings para montar a consulta SQL, o que facilita a leitura e evita erros de sintaxe; além disso, o retorno genérico em caso de falha impede vazamento de informações sensíveis.


B

A principal vulnerabilidade está na ausência de criptografia da senha, sendo recomendável aplicar um algoritmo de hash como SHA-1 diretamente na string da senha após armazená-la ou compará-la no banco de dados.


C

O código apresenta risco de injeção de SQL, pois concatena diretamente os parâmetros do usuário na query, de modo que a solução adequada envolve o uso de consultas parametrizadas e o armazenamento de senhas com hash seguro.


D

A revisão de código deve focar apenas na lógica de autenticação e não precisa considerar a forma como a consulta é construída, pois a responsabilidade pela segurança da consulta é do banco de dados.