Threat
A parent requests another family’s child profile
The request flows through authenticated parent context and owner-scoped service queries rather than trusting a client-supplied identifier.
An evidence-backed review of an education platform whose friendly experience sits on top of sensitive identity, child-profile, administrative, and model boundaries.
Security thesis
Awade helps parents support a child’s learning at home. That makes account identity, child-profile ownership, and generated educational content primary security concerns rather than secondary infrastructure details.
I reviewed the application from the browser through FastAPI, PostgreSQL, Redis, and its OpenAI/Gemini provider layer. Authentication, active-account status, roles, ownership, and model safety are separate controls because each answers a different security question.
The React client sends a JWT through an HttpOnly cookie or bearer header; the API—not the browser—authenticates and authorizes the request.
FastAPI dependencies verify the token, load the active user, reject suspended accounts, and enforce the exact route audience.
Owner-scoped service queries constrain access to child profiles, guides, and exports; administrative access follows a separate elevated path.
AI inputs cross sanitisation and delimiter boundaries before provider use; model output crosses JSON, schema, PII, and child-safety validation before persistence.
PDF generation is treated as a separate trust boundary because rendering engines can introduce file, network, and unsafe-HTML risks.
Fixed-algorithm JWT verification, HttpOnly-cookie support, production fail-closed secret configuration, active-user lookup, and suspended-account rejection.
Explicit parent, educator, admin, and super-admin dependencies are combined with owner-scoped child-data queries to prevent cross-account access.
Logout blacklists refresh tokens in Redis before deleting authentication cookies; token and cookie behaviour is covered by focused tests.
Generic registration and password-reset responses reduce enumeration, while authentication and recovery routes use dedicated request budgets.
User context is truncated, delimiter tags are removed, sensitive patterns are redacted, injection phrases are scrubbed, and content is placed inside explicit data boundaries.
Responses are parsed and schema-checked, then screened for PII, jailbreak indicators, and clearly harmful child-facing material before use.
Provider calls have explicit timeouts and token limits. The model receives no tools or direct write authority; application code controls persistence.
Authorization, request limits, unsafe-content checks, and focused PDF security tests protect the export boundary.
Threat
The request flows through authenticated parent context and owner-scoped service queries rather than trusting a client-supplied identifier.
Threat
Administrative routers require an elevated dependency and keep sensitive actions behind explicit role checks and request limits.
Threat
Context is scrubbed, bounded, and placed inside data-only delimiters; suspicious output is independently screened.
Threat
Logout records the token in Redis before clearing cookies, allowing later refresh attempts to be rejected.
166
backend authentication, access-control, AI, and PDF security tests passed
16
frontend sanitizer and API-client tests passed
0
new Critical or High findings identified
Clean
secret and sensitive-file checks in the security review
Open · tracked
Record the last rotation, rotate if the date is unknown or overdue, and maintain a recurring evidence-backed schedule.
Continuous risk
Retain layered input/output gates, red-team fixtures, rate limits, model pinning, and human review of educational content.
Governance
Review applicable GDPR, COPPA, and local African data-protection requirements before launching in each jurisdiction.
Maintenance
Assess breaking SDK and framework upgrades through the dependency-security workflow rather than forcing untested major updates.
This public version excludes secrets, production identifiers, real user data, internal prompt details, and actionable exploit reproduction steps.
View the Awade product case study