📚 Pré-requisitos Teóricos: este projeto aplica conceitos ensinados em Módulo 12: Desenvolvimento Seguro. Recomendado revisar antes de começar.

🛡️ Laboratório de Auditoria & Hardening OWASP Top 10

v1.0 — Segurança Defensiva, SQL Injection, XSS, CSRF e Headers HTTP

Trilha de Especialização Pedagógica — Projeto 1 de 4

🎓 Nível Profissional Simulado: Engenheiro de Segurança / DevSecOps Júnior. Em segurança da informação, a responsabilidade não é só do time de infraestrutura. Um desenvolvedor seguro escreve código defensivo, valida todas as entradas de usuário, blinda o banco contra SQLi e configura cabeçalhos de proteção que barram ataques automatizados.

—`

🎯 Objetivo & Escopo do Projeto

Construir um laboratório prático de Hardening e Segurança Defensiva mitigando as principais vulnerabilidades do OWASP Top 10, implementando consultas preparadas parametrizadas contra SQL Injection, sanitização rigorosa de inputs contra Cross-Site Scripting (XSS) e injeção de cabeçalhos de segurança HTTP modernos.

—`

🧑‍💼 Fase 1 — Levantamento de Requisitos

O Briefing do Cliente (Chief Information Security Officer — CISO)

“Nosso relatório de Pentest apontou que nosso portal está vulnerável a SQL Injection na tela de login e que um hacker conseguiu injetar um script XSS que roubava cookies de sessão dos clientes. Precisamos de uma refatoração de segurança urgente: eliminar 100% das concatenações de strings em queries SQL, escapar qualquer saída HTML no frontend e configurar os cabeçalhos de proteção (CSP, HSTS, X-Frame-Options).”

Requisitos Funcionais (RF) e Não-Funcionais (RNF)

ID Tipo Descrição Origem no Briefing
RF01 Funcional Eliminar SQL Injection através do uso estrito de Prepared Statements parametrizados. “vulnerável a SQL Injection”
RF02 Funcional Sanitizar e escapar caracteres perigosos em textos de entrada de usuário para impedir XSS. “script XSS roubava cookies”
RF03 Funcional Injetar cabeçalhos de segurança HTTP (CSP, HSTS, X-Frame-Options, X-Content-Type-Options). “cabeçalhos de proteção”
RNF01 Não-Funcional Conformidade estrita com o guia de recomendações do OWASP Top 10. Compliance de Segurança
RNF02 Não-Funcional Zero impacto perceptível na latência de resposta das requisições. Performance

—`

📋 Fase 2 — Backlog & User Stories

ID User Story Prioridade
US01 Como usuário, quero ter meus dados protegidos contra vazamentos por injeção SQL. Alta
US02 Como CISO, quero que o navegador bloqueie a execução de scripts não autorizados via CSP. Alta

—`

🌿 Fase 3 — Engenharia em Equipe (Git Flow & Setup)

# Branch da funcionalidade
git checkout -b feature/US01-owasp-hardening

# Executar a auditoria do modulo de seguranca
python src/security_core.py

—`

🛠️ Fase 4 — Implementação Guiada (src/security_core.py)

class SecurityManager:
    @staticmethod
    def sanitizar_xss(texto_usuario: str) -> str:
        return html.escape(texto_usuario, quote=True)

    @staticmethod
    def buscar_usuario_seguro(conexao, username: str):
        cursor = conexao.cursor()
        query = "SELECT id, username, email FROM usuarios WHERE username = ?"
        cursor.execute(query, (username,))
        return cursor.fetchone()

—`

🚀 Como Executar no Laboratório

1. Abra o terminal na pasta deste projeto

No seu editor/IDE, abra a pasta deste projeto (File > Open Folder) ou navegue via terminal:

cd seguranca_01_hardening_owasp

2. Execute a aplicação ou testes

docker-compose up -d
python audit_security.py

[!TIP] Dica para execução a partir da raiz do repositório: Se você abriu o repositório completo no VS Code, basta navegar até a pasta antes de executar: cd proj_aplicacoes_full_stack/projetos/seguranca_01_hardening_owasp`

🧭 Decisões de Arquitetura (ADRs)

—`

🧪 Testes de Validação & Asserções de Pentest

# Tentativa de SQL Injection classico: ' OR '1'='1
payload_sqli = "' OR '1'='1"
# Com Prepared Statements, a query busca literalmente pela string e retorna None (Nao vaza dados!)

—`

✅ Checkpoint Final

  1. Todas as queries utilizam Prepared Statements parametrizados.
  2. Sanitização XSS e Content Security Policy validados.

⬅️ Ver Todos os Projetos no Super-Hub 🏠 Página Inicial do Portal