🛡️ Desafio Prático: Auditoria de Injeção SQL
Atividade Lab Disciplina: Segurança em Banco de Dados
Olá, pessoal! No desafio de hoje, vamos atuar como Auditores de Sistemas. Abaixo, você encontrará um trecho de código Python que realiza buscas em um banco de dados SQLite. Sua missão é identificar a falha crítica e corrigi-la.
⚠️ O Cenário: Um sistema de e-commerce está permitindo que usuários maliciosos visualizem dados de outros clientes apenas manipulando o campo de busca.
Trecho de Código Vulnerável:
import sqlite3
def buscar_usuario(nome_usuario):
conn = sqlite3.connect('empresa.db')
cursor = conn.cursor()
# ANALISE ESTA LINHA:
query = "SELECT * FROM usuarios WHERE nome = '" + nome_usuario + "'"
print(f"Executando a query: {query}")
cursor.execute(query)
return cursor.fetchall()
# Exemplo de entrada que quebra a segurança:
# input_usuario = "admin' OR '1'='1"
O que deve ser entregue?
- Explicação: Por que a concatenação acima é perigosa?
- Correção: O código corrigido usando Parameterized Queries.
- Script: Upload do arquivo .py ou .sql testado.
Nenhum comentário:
Postar um comentário