Block signups from disposable email domains
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 28/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Ambito
- authentication
Direzione di ricerca
Start by tracing the signup flow in planner and the magic-link request handled by auth.codebar.io to identify where an email-domain check could run. The issue leaves the check location, list source and refresh process, false-positive handling, and audit behavior open for discussion. Done means those choices are resolved and signup clearly handles blocked domains.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Background
Member 31423 is a junk signup from 23 September: gibberish profile, throwaway email [email protected], and seven chapter subscriptions (three of them coach groups in Helsinki, Berlin and West London) posted in 18 seconds. Full analysis is available on request — the short version is that the account passed every check because there are no checks:
- The magic-link flow proves the mailbox can receive mail, and a disposable email service receives mail, so throwaway addresses complete signup normally.
- The profile form accepts any content.
- Chapter and group subscriptions are unlimited, including coach groups.
We checked every signup since 24 September for rare email domains and found no repeat, so this was one account rather than a campaign. The account itself is being handled separately (suspend, keep the evidence).
Proposal
Block signups from known disposable email domains. smaau.com and similar services publish their domain lists publicly, so a denylist check on the email domain at signup would have stopped this account.
Open questions for discussion:
- Where the check lives. The magic-link request happens at auth.codebar.io; the profile and subscription flow happens in planner. Blocking at the auth layer stops the account before it exists; a planner-side check on the details form would only stop profile and subscription completion. Doing both, or just auth, needs deciding.
- List source and freshness. Public disposable-domain lists are maintained by third parties. Bundle a static list and update periodically, or fetch a list at runtime. Either way we need a refresh process and a way to audit changes.
- False positives. A denylist can catch a legitimate personal or company domain by mistake. The signup flow should tell the user what happened and give a contact route, and the check should log the domain for review rather than failing silently.
- Bypass concern. Nothing stops someone using a real mailbox for junk signups. The denylist raises the cost of junk signups; it does not eliminate them. Capping subscriptions for new accounts and gating coach-group subscriptions are follow-up options if this proves insufficient.
Related
- The
members.unsubscribedcolumn is unrelated dead schema, tracked in a separate issue.
- Lingua principale
- Ruby
- Stelle
- 105
- Fork
- 206
- Merge medio
- 19h 19m
- PR unite (30g)
- 77
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di codebar/planner
-
refactoring trivial
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
I maintainer di solito rispondono entro 1 giorno
-
`Drop workshops.sign_up_url`Apertarefactoring trivial
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
I maintainer di solito rispondono entro 1 giorno
-
DashboardQuery eager-loads workshop_host with :sponsors in one join (same host-loss trap as #2975)Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di codebar/planner
Issue simili
-
feature
Difficoltà 2/5 1-3 ore Idoneità per principianti 60/100
manyfold3d/manyfold#7346 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
🐞 bug pending triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
CircuitVerse/CircuitVerse#8025 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
we-promise/sure#4199 ·
I maintainer di solito rispondono entro 1 giorno
-
Zibi version number updateAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
riscv/riscv-unified-db#2738 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
scanaislop/aislop#482 ·
I maintainer di solito rispondono entro 1 giorno