Blog ๐ŸŒ™ My Sleepy Tale
Security & Transparency ยท June 2026

How We Protect Your
Family's Data

We ran a full security audit on My Sleepy Tale. Here is what we found, what we fixed, and how we are keeping your children's bedtime stories safe.

What We Found

We conducted a comprehensive security audit covering every API endpoint, the frontend application, data storage, email systems, and payment processing. We looked at the platform the way an attacker would.

SeverityFoundFixedStatus
Critical55All Fixed
High755 Fixed, 2 in progress
Medium94Ongoing
Low31Backlog

Critical Fixes Implemented

1

Payment Webhook Security

Our Stripe webhook previously accepted unverified events as a fallback. An attacker could forge subscription upgrades for any account. Fixed: Every webhook event now requires a valid cryptographic signature. No signature = rejected.

Was: Critical Now: Fixed
2

API Authentication

Internal admin endpoints had no authentication. Anyone who discovered the URL could write data. Fixed: All admin endpoints now require verified admin credentials before processing any request.

Was: Critical Now: Fixed
3

Secret Key Protection

Production API keys were at risk of being exposed in version control. Fixed: All secret files are now excluded from version control. Keys are stored only in secure environment variables on our cloud infrastructure.

Was: Critical Now: Fixed
4

Email Injection Prevention

User-supplied content in emails was not sanitized, creating injection risks. Fixed: A shared sanitization layer now escapes all HTML and validates all email addresses before sending. Prevents XSS, header injection, and BCC attacks.

Was: High Now: Fixed
5

Children's Privacy (COPPA)

Child names were being sent to third-party analytics. Fixed: All personally identifiable information about children has been removed from analytics tracking. We only track anonymized events.

Was: High Now: Fixed

Email Throttling

We built a throttling layer to ensure we never spam your inbox. Every email sent is logged and checked against these rules:

Transactional

  • Welcome email
  • Payment confirmed / failed
  • Story approved
  • No limit โ€” these must always send
  • Cannot be unsubscribed

Activity

  • Contribution submitted / published
  • Series shared with you
  • Story created confirmation
  • Max 5 per user per day
  • Automatic โ€” triggered by actions

Marketing

  • Weekly newsletter
  • Blog announcements
  • Feature updates
  • Max 1 per user per week
  • Unsubscribe anytime

What We Never Do

  • Sell your email to third parties
  • Send cold emails to non-users
  • Daily marketing blasts
  • Emails without unsubscribe option
  • Share children's data with advertisers

Email Decision Flow

User Action
Triggers Email
โ†’
Check
Category
โ†’
Check
Throttle Limit
โ†’
Check
Unsubscribe
โ†’
Send or
Skip
โ†’
Log to
Database

Security Headers

Every response from mysleepytale.com now includes these security headers:

HeaderValueProtects Against
Strict-Transport-Securitymax-age=31536000; includeSubDomains; preloadProtocol downgrade attacks
X-Frame-OptionsDENYClickjacking
X-Content-Type-OptionsnosniffMIME sniffing
Referrer-Policystrict-origin-when-cross-originPrivacy leaks to third parties
X-XSS-Protection1; mode=blockCross-site scripting

What We Commit To

Our Security Promise

We will never store your child's name in third-party analytics. We will never sell your email. We will always let you unsubscribe from marketing emails. We will fix critical vulnerabilities within 24 hours of discovery. We will be transparent about what we find and what we fix.

Found a Vulnerability?

If you discover a security issue, please email us at hello@mysleepytale.com with the subject "Security Report". We take every report seriously and will respond within 48 hours.

Your Family's Safety First

We built My Sleepy Tale for our own children. We protect your data the way we protect theirs.

Explore Stories โ†’