Backend Engineer & AppSec
DAVID
MOURA
Java • Spring • REST APIs • Segurança de Aplicações

Sou desenvolvedor backend focado em Java e segurança de aplicações. Gosto de entender como sistemas falham — e de fazer com que não falhem. Trabalho com Spring Boot, Spring Security, e dedico uma parte boa do tempo testando APIs que eu mesmo ou outros constroem.

Não tenho dez anos de experiência nem uma stack list infinita. Tenho consistência, curiosidade de verdade por segurança e código que vai direto ao ponto.

david@localhost ~ zsh
cat about.json
{
"nome": "David Moura",
"stack": "Java / Spring / AppSec",
"foco": "backend + pentest + appsec",
"open_to": "freelance / fulltime",
"disponivel": true
}
git log --oneline -4
a3f21c8 feat: add jwt filter + refresh token
9d0e41b fix: sql injection via param binding
c882af1 chore: owasp dep-check pipeline
7f3b209 docs: pentest findings report v2
Java · Spring Security · JWT

Arquitetura Backend

FLUXO DE AUTENTICAÇÃO
🌐
Cliente HTTP
HTTPS TLS 1.3 · mTLS
TLS
Bearer token
🔐
API Gateway
Rate limit · WAF · CORS
OWASP
request validado
Spring Security Filter
JwtAuthFilter · RBAC · CSRF off
AUTH
principal injetado
Camada de Serviço
Lógica + validação de input
@Service
prepared statements
🗄
Banco de dados
AES-256 · Audit log · Backups
ENCRYPTED
Java 17+Spring Boot 3Spring SecurityJWTOAuth2HibernatePostgreSQLDockerREST
JwtAuthenticationFilter.java ● Java
// filtra cada request antes de chegar no controller @Component public class JwtAuthenticationFilter extends OncePerRequestFilter { @Override protected void doFilterInternal( HttpServletRequest req, HttpServletResponse res, FilterChain chain) { final String header = req .getHeader("Authorization"); if (header == null || !header.startsWith("Bearer ")) { chain.doFilter(req, res); return; } String jwt = header.substring(7); if (jwtService.isTokenValid(jwt)) { setAuthentication(jwt, req); } chain.doFilter(req, res); } }
SecurityConfig.java ● Java
@Configuration @EnableMethodSecurity public class SecurityConfig { @Bean public SecurityFilterChain filterChain( HttpSecurity http) { return http .csrf(AbstractHttpConfigurer::disable) .sessionManagement(s -> s .sessionCreationPolicy(STATELESS)) .authorizeHttpRequests(auth -> auth .requestMatchers("/api/auth/**").permitAll() .requestMatchers("/api/admin/**") .hasRole("ADMIN") .anyRequest().authenticated()) .addFilterBefore(jwtFilter, UsernamePasswordAuthFilter.class) .build(); } }
SAST · DAST · OWASP Top 10

Segurança de Aplicações

Crítico 2
CVE-2021-44228
Log4Shell RCE
CVSS 10.0 · RCE
CVE-2023-44487
HTTP/2 Rapid Reset
CVSS 7.5 · DoS
Alto 3
CWE-89
SQL Injection
Injection · API
CWE-287
Broken Auth
AuthZ · OWASP A07
CWE-918
SSRF
Network · Server
Médio 2
CWE-352
CSRF Token Missing
Web · Forms
CWE-116
Improper Encoding
XSS · Output
Corrigido 6
CVE-2021-44228
Log4Shell
✓ upgrade 2.17.1
CWE-798
Hardcoded Creds
✓ Vault integrado
CWE-89
SQLi
✓ Prepared stmts
ANÁLISE ESTÁTICA (SAST)
Static Pipeline
  • SonarQube — qualidade + security hotspots
  • SpotBugs + FindSecBugs — bugs em Java
  • OWASP Dependency-Check — CVEs em libs
  • Semgrep — regras customizadas de AppSec
  • GitLeaks — secrets no histórico git
ANÁLISE DINÂMICA (DAST)
Dynamic Pipeline
  • OWASP ZAP — scan ativo de app web
  • Burp Suite — interceptação e fuzzing de API
  • Nuclei — templates de vulns conhecidas
  • Wfuzz / ffuf — enumeração de endpoints
  • Postman + scripts — testes funcionais de API
API Security · Web · Network

Testes de Penetração

O QUE FICA NO ESCOPO
01
Reconhecimento de API
Enumeração de endpoints, leitura de spec OpenAPI/Swagger, fingerprinting de versões.
02
AuthN / AuthZ
BOLA/IDOR, JWT alg confusion (none attack), privilege escalation, missing auth checks.
03
Injeção de Dados
SQLi, NoSQLi, SSTI, XXE, desserialização insegura, mass assignment.
04
Rede e Infraestrutura
Port scan, TLS/SSL analysis, SSRF chaining, exposição de serviços internos.
pentest :: api.target.local :: sessão ativa AO VIVO
08:42:01[INFO ]iniciando reconhecimento — alvo: api.target.local
08:42:03[INFO ]swagger UI detectado em /api/docs
08:42:07[SCAN ]143 endpoints enumerados via OpenAPI spec
08:42:19[WARN ]JWT alg=HS256 — testando algorithm confusion...
08:42:21[VULN ]CRITICAL: alg=none aceito — auth bypass confirmado
08:42:24[EXPL ]GET /api/users/{id}testando BOLA
08:42:26[VULN ]HIGH: IDOR — acesso a dados de outros usuários
08:43:15[WARN ]rate limiting ausente — bruteforce viável
08:44:00[REPT ]relatório gerado: 2 Critical, 3 High, 2 Medium
08:45:30[DONE ]sessão encerrada. remediações documentadas.
Sobre mim

Um pouco sobre

Comecei com Java porque queria entender como grandes sistemas funcionam — e rapidamente percebi que entender como eles quebram é igualmente importante, talvez mais.

Meu dia a dia mistura desenvolvimento backend com olhar de segurança: escrevo código pensando em como ele pode ser explorado, faço pentest em APIs para encontrar o que os devs não viram, e configuro pipelines de SAST/DAST para automatizar o processo.

Ainda estou construindo minha trajetória — meu GitHub tem os projetos reais, com commits reais, erros incluídos. Se quiser ver como eu trabalho de verdade, é por lá. github.com/DavidHMoura →

AGORA MESMO
Estudando AWS Security Specialty
Explorando Kubernetes security hardening
Completando labs de API hacking no PortSwigger
Aberto a freelas de AppSec e backend Java
BACKEND
Java / Spring Boot88%
REST API Design85%
SQL (PostgreSQL)78%
Docker / CI-CD72%
SEGURANÇA
OWASP / AppSec86%
Burp Suite / ZAP80%
SAST / DAST Pipelines76%
Network Security65%
GitHub · Projetos Reais

O que estou construindo

Java · Spring Boot
COMPLIANCE RISK ENGINE
Motor de análise de risco e compliance automatizado. Desenvolvido para avaliar padrões de segurança e conformidade em infraestruturas críticas.
ativo Spring · Postgres · Docker
Python · Shell
AppSec Pipeline
Pipeline de CI/CD com SAST integrado: SonarQube + OWASP Dep-Check rodando automaticamente em todo PR. Aprendi na prática como isso funciona em ambiente real.
GitHub Actions · SonarQube
Pentest · Reports
Pentest Lab Notes
Anotações e scripts dos labs de API security do PortSwigger e HackTheBox. Nada polido, é genuinamente um caderno de estudos.
Burp · ZAP · Nuclei
Ver todos os repositórios no GitHub →
Vamos conversar

Fala Comigo

Se você tem um projeto de segurança, precisa de uma API backend Java, ou só quer trocar ideia sobre AppSec e pentest — pode mandar mensagem. Respondo sempre, demoro às vezes.

Instagram
WhatsApp
./contato.sh --modo seguro
nome
e-mail
assunto
mensagem
ou fale direto
WhatsApp · (81) 98674-0931