Confianza en Squish

Cómo protegemos los datos de los clientes, con quién los compartimos y cuánto tiempo los conservamos. Actualizado el 4 de noviembre de 2026.

MFA obligatoria (proveedores + personal)
Suplantación con registro de auditoría
Acceso con Cloudflare Zero Trust
SOC 2 Type 1 en curso
Ver el estado del sistema en vivo

Visión general de la arquitectura

Squish es una plataforma multiservicio. El sitio para clientes (squish.co) y el CRM interno (work.squish.co) se ejecutan en Cloudflare Workers / Pages. Cinco backends de Node.js — squish-backend, squish-crm-backend, squish-provisioning, squish-email y squish-hosting — se ejecutan en Railway en la región US-East. Los registros de clientes viven en Salesforce; el estado transaccional, los registros de auditoría y los metadatos de aprovisionamiento viven en Google Firestore (región de EE. UU.). Los datos de pago los custodia Stripe — Squish queda fuera del alcance PCI por diseño.

El registro de dominios se gestiona a través de NameSilo. El hosting web compartido se ejecuta en nodos Plesk alojados en droplets de DigitalOcean; los VPS de Managed Cloud usan CyberPanel por defecto en su propio droplet. Los sitios alojados están protegidos por el CDN y el WAF de Bunny. Las licencias de Microsoft 365 se gestionan a través de Pax8 (CSP).

Cifrado

  • En tránsito: TLS 1.3 (mínimo TLS 1.2) de extremo a extremo vía Cloudflare. HSTS aplicado en todos los dominios de cara al cliente.
  • En reposo: cifrado por defecto de Firestore (AES-256), cifrado de plataforma de Salesforce; Stripe gestiona todos los datos de tarjetas con controles PCI DSS Nivel 1.
  • Secretos: todas las claves de API, credenciales de cuentas de servicio y cadenas de conexión a bases de datos viven en variables de entorno de Railway y en secret bindings de Cloudflare — nunca se suben al código fuente.
  • Copias de seguridad: recuperación point-in-time de Firestore (ventana de 7 días). Los registros de clientes de Salesforce viven en la plataforma Salesforce con su replicación y recuperación ante desastres integradas.

Autenticación y control de acceso

  • Autenticación de clientes: Firebase Auth (email + contraseña, más proveedores OAuth opcionales). JWT de corta duración (TTL de 1 hora).
  • Autenticación del personal: Cloudflare Access delante de todas las superficies internas. SSO + MFA obligatorios. Tokens de sesión limitados por aplicación.
  • Servicio a servicio: clave de API interna compartida + controles de rol por ruta (admin / soporte / ventas).
  • Suplantación: cada sesión del personal en modo "actuar como cliente" se registra con el motivo, todas las acciones y las marcas de tiempo de inicio y fin. Las acciones destructivas (cambios de método de pago, transferencias de registrador) se bloquean durante la suplantación mediante una lista de denegación explícita.

Registro de auditoría

Cada acción privilegiada queda registrada en una de estas colecciones de Firestore de solo escritura incremental:

  • security_events — fallos de autenticación, denegaciones de RBAC, intentos de IDOR, activaciones de límite de tasa
  • impersonation_sessions — sesiones de personal-como-cliente con subcolección por acción
  • billing_actions — emisión de reembolsos, motivos de límites por rol, cadenas de segundo aprobador
  • email_log — cada email saliente con tipo, motivo de supresión y estado de envío
  • webhook_events — leases de idempotencia de webhooks de Stripe / NameSilo / Pax8
  • cron_runs — latido de cada tarea programada (para que las ejecuciones ausentes sean visibles)

Controles verificados en el código

Los controles de seguridad no solo se describen en esta página — los críticos se verifican en el código para que el próximo despliegue no pueda debilitarlos silenciosamente.

  • Gate de CI sobre las cabeceras de seguridad de respuesta: cada PR ejecuta un smoke test de vitest que hace fallar el build si las cabeceras Content-Security-Policy, Cross-Origin-Resource-Policy, anti-clickjacking o referrer-policy se desvían de sus valores previstos.
  • Sonda de permisos de terceros al arranque: al iniciarse, el backend verifica que la clave de API de Stripe configurada tenga todos los alcances de los que dependen el panel y los flujos de checkout; un alcance ausente se registra de forma visible en el arranque en lugar de aparecer como un fallo silencioso de cara al cliente.
  • Los helpers de SOQL tipados rechazan identificadores malformados en el punto de llamada en lugar de convertirlos silenciosamente en un valor que ampliaría la consulta — defensa contra inyección SOQL del lado de la integración.
  • Manifiesto de preparación de variables de entorno: cada servicio declara todas las variables que consume, marcadas como obligatorias u opcionales, y un endpoint interno informa de cuáles faltan en la instancia en ejecución — así un secreto ausente aparece en una comprobación deliberada tras el despliegue y no en la primera petición de cliente que lo necesitaba.

Retención de datos

Los datos operativos se conservan durante ventanas cortas y justificables; los registros financieros se conservan los 7 años que exige la legislación fiscal de EE. UU. Las solicitudes de eliminación de clientes se atienden en un plazo de 30 días para los datos no financieros.

Tipo de datoPlazo de retenciónAlmacén
Registros operativos (debug, latidos)30 díasTTL de Firestore en cron_runs
Registro de envíos de email90 díasTTL de Firestore en email_log
Eventos de webhook (Stripe, etc.)90 díasTTL de Firestore en webhook_events
Carritos abandonados90 díasTTL de Firestore en carts (status=draft|abandoned)
Registros de cargos fallidos1 año tras la última actividadTTL de Firestore en failed_charges
Eventos de seguridad (fallo de autenticación, denegación RBAC)1 añoTTL de Firestore en security_events
Auditoría de suplantación (personal-como-cliente)IndefinidamenteFirestore impersonation_sessions
Registros de renovación de dominios (financieros)7 añosFirestore domain_renewals + Salesforce Order
Reembolsos, acciones de facturación7 añosFirestore billing_actions + Salesforce
Cargos exitosos, facturas, pedidos7 añosStripe + Salesforce Order (replicado)
Datos de cuenta del cliente (activa)Vida de la cuenta + 30 díasSalesforce Account / Contact
Transcripciones del asistente de IAIndefinidamenteSalesforce Chat_Conversation__c + Chat_Message__c
Proyectos del creador de sitios (Faber)IndefinidamenteFirestore faberProjects
Datos del cliente tras solicitud de eliminación30 días, salvo lo que no podemos eliminar a petición del cliente: registros de facturación (7 años), registros de seguridad y abuso (1 año), y transcripciones del asistente de IA, registros de acceso del personal y proyectos del creador de sitios (indefinidamente). Los registros de facturación incluyen tu registro de cliente en Stripe, del que se eliminan las tarjetas guardadasTarea de purga en Salesforce + Firestore

Subencargados

Proveedores que procesan datos de clientes en nuestro nombre. Cada uno opera bajo su propio programa de cumplimiento — los enlaces llevan a sus páginas públicas de confianza.

ProveedorPropósitoRegiónCumplimiento
Stripe Procesamiento de pagos, almacenamiento de tarjetas (alcance PCI)EE. UU.SOC 1, SOC 2, PCI DSS L1
Salesforce Registros de clientes, pedidos, casos de soporteEE. UU.SOC 1, SOC 2, ISO 27001, ISO 27018
Google Firebase Autenticación, base de datos Firestore, hostingEE. UU.SOC 1, SOC 2, SOC 3, ISO 27001, ISO 27017, ISO 27018
Cloudflare CDN, protección DDoS, WAF, acceso del personal (Zero Trust)Edge globalSOC 2, ISO 27001, PCI DSS
NameSilo Registro de dominios + DNSEE. UU./CARegistrador acreditado por ICANN
Pax8 Aprovisionamiento de licencias de Microsoft 365 (CSP)EE. UU.SOC 2
Microsoft Buzones de Microsoft 365 + hosting de tenant (gestionado vía administración delegada)EE. UU. (a elección del cliente)SOC 1, SOC 2, ISO 27001, ISO 27018, HIPAA
Resend Entrega de emails transaccionalesEE. UU.SOC 2
Trustpilot Invitaciones a dejar una reseña tras una compraUESOC 2 Type 2
Railway Hosting de contenedores backend (US-East)EE. UU.SOC 2
DigitalOcean Droplets de hosting compartido PleskEE. UU.SOC 2, SOC 3, ISO 27001, PCI DSS
Amazon Web Services Proyectos de alojamiento gestionado en AWSEE. UU.SOC 1, SOC 2, ISO 27001, PCI DSS
Bunny.net CDN + WAF para sitios de clientes alojados, dominios aparcados y redireccionesEdge globalGDPR (DPA disponible)
Anthropic Asistente de IA (soporte por chat, enrutamiento de prompts); comprobaciones de respuestas de AI VisibilityEE. UU.SOC 2
Perplexity Comprobaciones de respuestas de AI VisibilityEE. UU.SOC 2

Respuesta a incidentes y divulgación responsable

  • Contacto de seguridad: security@squish.co — el personal recibe alertas en tiempo real.
  • Política de divulgación responsable: /.well-known/security.txt
  • SLA de respuesta inicial: en un plazo de un día laborable.
  • Notificación a clientes: dentro de las 72 horas tras confirmarse una brecha que afecte datos de clientes, conforme al Artículo 33 del RGPD.
  • Estado del sistema en vivo: squish.co/status

Postura de cumplimiento

Hoy: Squish opera un programa de seguridad autocertificado respaldado por los controles descritos arriba. La mayor parte del conjunto de controles de SOC 2 Type 1 (control de acceso, cifrado, registro de auditoría, gestión de proveedores, gestión de cambios) ya está implementada; la auditoría formal está en la hoja de ruta.

SOC 2 Type 1: en curso. Atestación prevista para finales de este año.

SOC 2 Type 2: el período de observación comienza tras obtener la atestación Type 1.

Para equipos de compras: con gusto completaremos un cuestionario de seguridad (CAIQ-Lite, SIG-Lite o su propio formato). Escríbanos a security@squish.co.

Acuerdo de Procesamiento de Datos (DPA): nuestro DPA estándar, alineado con el Artículo 28 del RGPD e incluyendo las Cláusulas Contractuales Tipo de la UE, está publicado en squish.co/dpa y se incorpora automáticamente a nuestros Términos de Servicio.

Habla con nuestro equipo de seguridadVer planes de hostingVer planes de email
Página de confianza actualizada por última vez el 4 de noviembre de 2026 · Los cambios relevantes se destacan al inicio de esta página.