Security
Last updated November 13, 2026.
How the site is built
- Static site, no server-side data. There are no accounts, logins, forms or databases. What people write is never sent to a server.
- Optional on-device encryption. "Lock my story" encrypts saved words with a key derived from the person's password (Argon2id, then XChaCha20-Poly1305 from the vetted libsodium library). A separate recovery key is shown once. The page locks after 5 minutes without use.
- No third-party code. No analytics, ads, trackers, CDNs or outside fonts. The crypto library is served from this site and checked with Subresource Integrity.
- Strict browser protections. Content-Security-Policy with no inline scripts or styles, Trusted Types, HSTS, frame blocking, cross-origin isolation headers, no referrer, and a Permissions-Policy that turns off camera, location and payment (the microphone is allowed only for this site's voice button).
- Safe page updates. The app writes text with safe DOM methods, not HTML strings. Links in the Local help data are limited to https, tel, sms and mailto, and the data files are checked by a validator before publishing.
Code file hashes for this release are listed in hashes.txt.
This is our own review, not an independent audit. We plan an outside review before adding accounts or sync.
Report a security problem
Please email gnrmadlab42@gmail.com with "Security" in the subject. Tell us what you found, the page or file, and steps to reproduce. Our machine-readable contact is at /.well-known/security.txt. We aim to acknowledge reports within 7 days.
- In scope: tellitonce.app and its files.
- Please don't: run denial-of-service or high-volume scans, try social engineering, or access anyone else's device or data.
- Safe harbor: if you act in good faith and follow this page, we will not pursue legal action against you, and we will credit you if you want.
- We are a small, unfunded project and cannot pay bug bounties.
Seguridad
Última actualización: 13 de noviembre de 2026.
Cómo está hecho el sitio
- Sitio estático, sin datos en servidores. No hay cuentas, inicios de sesión, formularios ni bases de datos. Lo que escriben las personas nunca se envía a un servidor.
- Cifrado opcional en el dispositivo. "Proteger mi historia con clave" cifra lo guardado con una clave derivada de la contraseña de la persona (Argon2id y luego XChaCha20-Poly1305, de la biblioteca libsodium). Una clave de recuperación aparte se muestra una sola vez. La página se bloquea tras 5 minutos sin uso.
- Sin código de terceros. Sin analítica, anuncios, rastreadores, CDN ni fuentes externas. La biblioteca de cifrado se sirve desde este sitio y se verifica con Subresource Integrity.
- Protecciones estrictas del navegador. Content-Security-Policy sin scripts ni estilos en línea, Trusted Types, HSTS, bloqueo de marcos, encabezados de aislamiento entre orígenes, sin referer y una Permissions-Policy que apaga la cámara, la ubicación y los pagos (el micrófono solo se permite para el botón de voz de este sitio).
- Actualizaciones seguras de la página. La aplicación escribe texto con métodos seguros del DOM, no con cadenas HTML. Los enlaces de Ayuda local se limitan a https, tel, sms y mailto, y un validador revisa los archivos de datos antes de publicarlos.
Los hashes de los archivos de código de esta versión están en hashes.txt.
Esta es nuestra propia revisión, no una auditoría independiente. Planeamos una revisión externa antes de agregar cuentas o sincronización.
Reportar un problema de seguridad
Escribe a gnrmadlab42@gmail.com con "Security" en el asunto. Cuéntanos qué encontraste, la página o el archivo y los pasos para reproducirlo. Nuestro contacto en formato legible por máquina está en /.well-known/security.txt. Buscamos responder en un plazo de 7 días.
- Incluido: tellitonce.app y sus archivos.
- Por favor, no: hagas ataques de denegación de servicio ni escaneos masivos, ingeniería social, ni accedas al dispositivo o datos de otra persona.
- Puerto seguro: si actúas de buena fe y sigues esta página, no tomaremos acciones legales en tu contra y te daremos crédito si quieres.
- Somos un proyecto pequeño y sin fondos; no podemos pagar recompensas.