Age verification mechanism exists before data collection from potential children
Why it matters
COPPA §312.5 requires operators to obtain verifiable parental consent before collecting personal information from children under 13. Without a server-enforced age gate, your registration endpoint creates accounts and stores personal data — name, email, date of birth — for users who may be children, with no parental involvement. The FTC treats this as a per-se violation regardless of whether you intended to attract children. Civil penalties reached $170 million in FTC v. Google/YouTube and $5.7 million in FTC v. Musical.ly. A client-side-only age gate provides zero legal protection because it is trivially bypassed by altering the form submission.
Severity rationale
Critical because any personal data stored before age verification makes the operator liable under COPPA §312.5 the moment a child completes registration — there is no cure once the data exists.
Remediation
Add server-side age validation to every account creation and data collection endpoint before committing any data to the database. The component below collects date of birth neutrally and the API route rejects submissions from users under 13 at the server level.
// app/api/auth/signup/route.ts
export async function POST(req: Request) {
const { email, password, dateOfBirth } = await req.json()
const age = computeAge(new Date(dateOfBirth))
if (age < 13) {
// Return 403 before writing any data
return Response.json({ error: 'Age requirement not met.' }, { status: 403 })
}
// ... proceed with account creation
}
Do not rely on ageVerified: true flags sent from the client — always compute age from the submitted birth date on the server.
DetectionPro
The detection method for this pattern is part of AuditBuffet Pro.
The full method (what to look for, pass and fail conditions, and how results get reported) ships inside the COPPA Compliance Audit. The pattern definition, severity rationale, and remediation remain openly licensed under CC-BY-4.0.
External references
- coppa · §312.5 — Verifiable parental consent — must be obtained before collection; age gate is the precondition
- coppa · §312.3 — General requirements — operator must obtain verifiable parental consent prior to collection
- cwe · CWE-285 — Improper Authorization — no enforcement of age-based access control before data collection
- owasp:2021 · A01 — Broken Access Control — age gate bypassed by client-side only enforcement
- nist:rev5 · AC-3 — Access Enforcement — control enforced at point of data collection
Taxons
History
- 2026-04-18·v1.0.0·Initial import from coppa-compliance·automated