Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Rate limit unauthenticated /password/generate-reset-link

Aperta
#955 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
52/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
typescript

Direzione di ricerca

Start in UsersController at POST /users/password/generate-reset-link, then read the /auth/login code that uses retriesRemaining and lockedUntil as the stated pattern. The issue proposes both per-IP throttling and a per-user cooldown, but does not name files or tests; locate the relevant tests and run them. Done means repeated requests are limited by both IP and user without changing normal reset-link behavior.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

backend enhancement

POST /users/password/generate-reset-link in UsersController is @NoSecurity() and fires a mail send on every request that matches a real user. No per-IP throttle. No per-user cooldown.

Two things this leaves open:

  • Someone who knows a real user's email can mail-bomb the inbox with valid reset links (15-minute TTL each, each writes a PasswordResetToken row).
  • Someone spamming the endpoint with random emails triggers a mail per matched real user at no cost.

/auth/login already has a per-user retry lock via retriesRemaining and lockedUntil. Same pattern isn't applied here.

Suggested fix

Add both:

  • Per-IP throttle via express-rate-limit or similar — blocks a script hammering the endpoint with random emails regardless of validity.
  • Per-user cooldown matching the /auth/login retry-lock pattern — blocks a distributed attack rotating IPs against one real user's email.
Lingua principale
TypeScript
Stelle
4
Fork
0
Merge medio
14h 50m
PR unite (30g)
5

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di Garvan-Data-Science-Platform/ctrl

Tutte le issue di Garvan-Data-Science-Platform/ctrl

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.