-
Notifications
You must be signed in to change notification settings - Fork 4
[Parent] Public API exposes reviewer emails and allows bulk extraction #326
Copy link
Copy link
Open
Labels
backenddatabaseMongoDB schema, indexes, migrations, queries, and data integrity.MongoDB schema, indexes, migrations, queries, and data integrity.frontendinfraDeployment, Vercel config, CI/CD, env vars, and build pipeline.Deployment, Vercel config, CI/CD, env vars, and build pipeline.priority: highUrgent. Fix or ship before other work: broken prod, security, or blocking bugs.Urgent. Fix or ship before other work: broken prod, security, or blocking bugs.securityVulnerabilities, leaked secrets, auth flaws, dependency CVEs, or hardening.Vulnerabilities, leaked secrets, auth flaws, dependency CVEs, or hardening.
Description
Activity
Metadata
Metadata
Assignees
Labels
backenddatabaseMongoDB schema, indexes, migrations, queries, and data integrity.MongoDB schema, indexes, migrations, queries, and data integrity.frontendinfraDeployment, Vercel config, CI/CD, env vars, and build pipeline.Deployment, Vercel config, CI/CD, env vars, and build pipeline.priority: highUrgent. Fix or ship before other work: broken prod, security, or blocking bugs.Urgent. Fix or ship before other work: broken prod, security, or blocking bugs.securityVulnerabilities, leaked secrets, auth flaws, dependency CVEs, or hardening.Vulnerabilities, leaked secrets, auth flaws, dependency CVEs, or hardening.
What
Tracking issue for five fixes that stop the public API leaking user data and make bulk extraction of reviews expensive and off-limits. Each fix has its own issue:
Why
GET /api/v2/reviews/popular?n=<large>returns every review with the author's full user document: email, googleID, admin flag, vote history and refresh-token hash. The route has no auth and no cap onn.populateReviewsAuthor=true(unit-overview.component.ts), so every visitor's browser downloads the email of every reviewer on that unit.GET /api/v2/unitsembeds every review for every unit in one response.GET /api/v2/users/:usernamestrips tokens but returns email, admin and vote history. Usernames default to the first eight characters of the email.Area
backend, frontend, infra, database
Notes or constraints