Skip to content

Adiciona testes de segurança inspirados no OWASP API Top 10 - #44

Merged
ThomasTDS merged 2 commits into
mainfrom
feat/security-tests
Oct 3, 2026
Merged

ThomasTDS merged 2 commits into
mainfrom
feat/security-tests

Conversation

@ThomasTDS

Copy link
Copy Markdown
Owner

Resumo

Adiciona 7 novos testes (TC-061 a TC-067 em docs/test-plan.md), inspirados no OWASP API Security Top 10:

  • Autenticação inválida (não apenas ausente): token malformado bloqueia POST/PUT/DELETE com 401.
  • Mass assignment: cliente tentando definir/alterar o campo id via POST e PUT - confirmado que o servidor ignora e usa o próprio valor.
  • Tratamento de entrada: caracteres especiais/script no corpo da requisição são armazenados e devolvidos com segurança, sem corromper a resposta.
  • Observação de rate limiting: uma rajada leve (15 GETs simultâneos, sem flood) não retorna 429 nem expõe headers de rate limit - documentado como característica (não defeito) na issue #43.

Sobre o recorte

Deliberadamente não cobre todas as 10 categorias do OWASP API Top 10: algumas (ex.: autorização por nível de função administrativa) nem fazem sentido para a GoRest, e nenhum teste aqui toca ou tenta acessar dado que não foi criado pelo próprio teste - é um sandbox público compartilhado, então exploração destrutiva contra dado de terceiro está fora de questão.

Validação local

npm run validate:openapi
npm run lint
npm test   # 67 testes, 0 falhas (60 anteriores + 7 novos)

Investiguei o comportamento real da API via curl antes de escrever cada asserção (mesmo método usado no resto do projeto).

Adiciona 7 novos testes (TC-061 a TC-067): token invalido (nao so
ausente) bloqueando POST/PUT/DELETE, observacao leve de rate limiting
(rajada de 15 GETs simultaneos, sem flood), mass assignment (cliente
tentando definir/alterar o campo id via POST e PUT) e tratamento
seguro de caracteres especiais/script no corpo da requisicao.

Recorte deliberadamente seguro: nenhum teste toca ou tenta acessar
dado que nao foi criado pelo proprio teste, ja que a GoRest e um
sandbox publico compartilhado. Categorias do OWASP Top 10 que
exigiriam isso (ex.: autorizacao por nivel de funcao administrativa,
que a GoRest nem possui) ficam fora de escopo.

Documenta na issue #43 a ausencia de sinal de rate limiting
observada, como caracteristica (nao defeito) da API de terceiros.
@codecov

codecov Bot commented Oct 3, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@ThomasTDS
ThomasTDS merged commit 342246c into main Oct 3, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant