Key the application notice per-user limit on the canonical user id

Fechada
#553 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
3/5
Tempo estimado
Meio dia
Facilidade para iniciantes
55/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Ativa
Stack de tecnologia
postgresql, typescript

Direção de pesquisa

Start with the applicationNoticeUserLimiter key generator in src/middleware/applicationNoticeRateLimit.ts, where the raw req.body.userId is used as the bucket key. Compare it with the user lookup that resolves the canonical user.id to see where case normalization fits. Done when case variants of one UUID share a bucket and the limiter store choice is documented or made configurable for multi-instance deployments.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

P1 security v0.23

Problem

applicationNoticeUserLimiter in src/middleware/applicationNoticeRateLimit.ts keys on the raw req.body.userId. z.uuid() accepts upper-case UUIDs and the Postgres lookup is case-insensitive, so case variants of one id get separate buckets, up to the per-client cap. Both notice limiters use the in-memory store, so each additional API instance multiplies the limits.

Fix

  • key on userId.toLowerCase(), or on the resolved user.id after lookup
  • use the shared rate-limit store when more than one instance runs
Linguagem predominante
TypeScript
Estrelas
2
Forks
2
Merge médio
12h 23min
PRs com merge (30d)
109

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de fells-code/seamless-auth-api

Todas as issues de fells-code/seamless-auth-api

Issues semelhantes

Mais issues de TypeScript

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.