OWASP Security Scanner v3.1
Criado por Flanklin A. M. Fernandes
============================================================

COMO ABRIR NO VS CODE
---------------------
1. Instale o JDK 11+:  https://adoptium.net/
   Verifique: javac -version

2. Instale o VS Code:  https://code.visualstudio.com/

3. Instale a extensao:
   Ctrl+Shift+X > busque "Extension Pack for Java" (Microsoft) > Instalar

4. Abra o projeto:
   File > Open Folder > selecione a pasta OWASPScanner
   (abrir a pasta raiz, nao a pasta src)

5. Aguarde indexar (barra de progresso no rodape do VS Code)

6. Execute pelo VS Code:
   - Opcao A (recomendada): F5 ou menu Run > Start Debugging
     Escolha "OWASP Scanner (GUI)" na lista
   - Opcao B: Abra App.java e clique em "Run" acima do main()
   - Opcao C (terminal): Ctrl+Shift+B para compilar, depois use
     a task "Executar Scanner" no menu Terminal > Run Task

ESTRUTURA
---------
OWASPScanner/
  .vscode/
    launch.json    <- configuracoes de execucao (F5)
    settings.json  <- configura src/ e bin/ para o Java Extension
    tasks.json     <- tasks de compilacao e execucao
  src/
    br/nalfweb/scanner/
      gui/         App.java              <- EXECUTE ESTE (interface grafica)
                   PainelHistorico.java  <- aba de historico
      checks/      BaseCheck.java        <- classe base HTTP
                   HeadersCheck.java     <- Security Headers (A02)
                   XssCheck.java         <- XSS Refletido (A05)
                   SqlCheck.java         <- SQL Injection (A05)
                   InfoCheck.java        <- Exposicao de Info (A01/A02)
                   CsrfCheck.java        <- CSRF e Cookies (A01)
                   TlsCheck.java         <- TLS/SSL (A04)
                   AcessoCheck.java      <- Broken Access Control (A01)
                   OpenRedirectCheck.java <- Open Redirect (A01) [NOVO v3.1]
                   DirListingCheck.java  <- Directory Listing (A01) [NOVO v3.1]
      historico/   HistoricoManager.java <- salva/carrega scans anteriores
      model/       ScanResult.java, Severity.java
      simulador/   SimuladorJanela.java, DadosAtaque.java
  bin/             <- classes compiladas (gerado automaticamente)

COMO USAR O SCANNER
--------------------
1. Digite a URL no campo (ex: http://www.nalfweb.com.br)
2. Marque os modulos desejados (9 modulos disponiveis em v3.1)
3. Clique em "Iniciar Scan"
4. Aguarde — checks rodam em paralelo (ate 4 simultaneos)
5. Clique em qualquer linha para ver detalhes e como corrigir
6. Clique em "Exportar HTML" para gerar relatorio

NOVIDADES v3.1
--------------
- NOVO: OpenRedirectCheck — detecta redirecionamento para URL externa
- NOVO: DirListingCheck  — detecta listagem de diretorios expostos
- FIX:  SqlCheck — URL encoding correto no teste boolean-based
- FIX:  SqlCheck — adicionado teste time-based (WAITFOR DELAY)
- FIX:  CsrfCheck — removida duplicidade da checagem HttpOnly
- MELHORIA: BaseCheck — adicionados metodos post() e head()
- MELHORIA: HeadersCheck — adicionados Permissions-Policy e COOP
- MELHORIA: Scan paralelo com ExecutorService (ate 4x mais rapido)
- MELHORIA: Thread safety com Collections.synchronizedList

REQUISITOS
----------
Java JDK 11 ou superior (nao apenas JRE — precisa do JDK completo)
Download: https://adoptium.net/
============================================================
