Seguridad
Tratamos la seguridad de las personas que usan este sitio como una propiedad de seguridad técnica. Si eres investigador y encontraste una vulnerabilidad, por favor repórtala mediante el proceso de divulgación responsable a continuación.
- RFC
- 9116
- Contacto
- [email protected]
Divulgación responsable
Por favor no divulgues públicamente una vulnerabilidad antes de que tengamos la oportunidad de corregirla. Escribe a [email protected] con detalles y una reproducción. Acusamos recibo en 72 horas y proporcionamos un cronograma de corrección.
Aún no operamos un programa de recompensas pagado. Sí reconocemos públicamente a los reportantes (con su consentimiento) en /about/security bajo «Salón de la fama» una vez publicado el arreglo.
Qué está dentro del alcance
- Cualquier cosa servida en tengoderechos.org y *.tengoderechos.org.
- Las rutas /api/donations/checkout, /api/donations/webhook, /api/og, /api/qr, /api/connections/*.
- Las consolas de administración /admin/resources y /admin/reviews.
- El service worker en /sw.js y el comportamiento de caché sin conexión.
Qué está fuera de alcance
- Cualquier dominio de terceros (Stripe, Supabase, Resend, ElevenLabs, Apple Wallet) — repórtalo directamente a esos proveedores.
- Spam / abuso vía el formulario público (ya requerimos moderación del lado del servidor).
- Detalles de buenas prácticas sin un escenario concreto de ataque (p. ej. falta de X-Frame-Options en una página que no devuelve datos sensibles).
Notas de arquitectura para revisores
El sitio público es una aplicación Next.js 16 con App Router. Todas las páginas de emergencia y derechos se prerrenderizan estáticamente; el service worker las guarda con una clave de caché versionada ligada a package.json.version + fecha de build.
El flujo de donación usa Stripe Checkout (hospedado) — nunca vemos datos de tarjeta. La verificación de firma del webhook usa STRIPE_WEBHOOK_SECRET; los eventos se deduplican en un LRU en memoria.
La cookie de admin es httpOnly, Secure, SameSite=lax y se establece solo cuando ADMIN_TOKEN coincide al iniciar sesión.
Las atestaciones de contenido se guardan en data/content-attestations.json. Cada atestación está ligada a una versión de contenido; subir la versión descarta la atestación, evitando ediciones silenciosas al contenido verificado.
El robots.txt incluye explícitamente a los principales rastreadores de IA. /admin y /weather están explícitamente prohibidos.
Salón de la fama
(Vacío — sé la primera persona en la lista.)
security.txt
Publicamos un security.txt legible por máquina en /.well-known/security.txt según el RFC 9116. Herramientas como Mozilla HTTP Observatory e Internet.nl lo verifican automáticamente.