Block signups from disposable email domains
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 28/100
- Issue-Typ
- Feature
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Aktiv
- Bereich
- authentication
Rechercherichtung
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.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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.
- Vorherrschende Sprache
- Ruby
- Sterne
- 105
- Forks
- 206
- Ø Merge
- 19 Std. 19 Min.
- Gemergte PRs (30 T.)
- 77
Entwicklungsumgebung
- Enthält ein Dockerfile oder eine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus codebar/planner
-
refactoring trivial
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
Maintainer antworten meist innerhalb von 1 Tag
-
refactoring trivial
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
Maintainer antworten meist innerhalb von 1 Tag
-
DashboardQuery eager-loads workshop_host with :sponsors in one join (same host-loss trap as #2975)Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
Maintainer antworten meist innerhalb von 1 Tag
-
enhancement
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in codebar/planner
Ähnliche Issues
-
feature
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 60/100
manyfold3d/manyfold#7346 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
🐞 bug pending triage
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
CircuitVerse/CircuitVerse#8025 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
we-promise/sure#4199 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
riscv/riscv-unified-db#2738 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
scanaislop/aislop#482 ·
Maintainer antworten meist innerhalb von 1 Tag