Saltar al contenido

Privacidad

Privacidad

Responsable del tratamiento

ResponsableÓscar Deseco
NIF13927293B
DomicilioPaseo del Niño 3, 39300 Torrelavega, Cantabria (España)
Correohola@noalergeno.com

Sin delegado de protección de datos: no hay tratamiento a gran escala de categorías especiales, porque los datos de salud no salen del dispositivo. Si algún día hay cuentas, esto se revisa antes de que exista la primera.

Cookies

Lo imprescindible, sin permiso

Tu perfil de NO, si ya aceptaste el aviso de uso, el país de viaje que elegiste y tu historial. Todo en localStorage, todo en tu dispositivo, nada que se envíe. No son cookies y no salen de ahí.

El artículo 22.2 de la LSSI exige consentimiento para almacenar información en el equipo salvo cuando es imprescindible para prestar un servicio pedido expresamente por la persona usuaria. Guardar «evito gluten y leche» es literalmente el servicio, así que para esto no se pide permiso.

La medición de visitas, solo si dices que sí

Usamos Google Analytics 4 para saber cuánta gente entra, de dónde viene y qué páginas mira.

Cookies_ga y _ga_<identificador>
FinalidadMedir visitas, procedencia y páginas vistas
Base jurídicaTu consentimiento (art. 6.1.a RGPD)
Quién lo trataGoogle Ireland Limited
DóndeTratamiento en Estados Unidos, al amparo del Marco de Privacidad de Datos UE-EE. UU. y de cláusulas contractuales tipo
Cuánto se conserva14 meses

Si rechazas, el script de Google no se descarga. No es que se cargue desactivado: tu navegador no llega a hablar con Google en ningún momento. El código de medición no está en ninguna página; lo inyecta el aviso de cookies y solo después de un sí explícito.

Si aceptas y luego cambias de opinión, se borran las cookies de Google que hubiera y se recarga la página. Retirar el permiso deshace algo, no solo lo anota.

Puedes cambiar tu elección cuando quieras desde el enlace Cookies del pie de cualquier página.

Lo que no hacemos

Rechazar cuesta exactamente lo mismo que aceptar. Los dos botones son el mismo componente, del mismo tamaño, uno al lado del otro, y hay un test que falla si dejan de serlo. Ninguna casilla viene premarcada, y seguir navegando no cuenta como aceptar.

No hay publicidad de terceros, ni remarketing, ni señales de Google.

La publicidad de este sitio no rastrea. Se sirve desde este mismo origen, sin cookies, sin píxeles y sin una sola petición al exterior. El día que entrara una red publicitaria de terceros haría falta pedir permiso también para eso. No se hará en silencio.

Tus derechos

Puedes ejercer los derechos de acceso, rectificación, supresión, oposición, limitación y portabilidad escribiendo a hola@noalergeno.com.

Conviene decir la verdad sobre esto: hoy no tenemos datos tuyos. No hay cuenta, no hay servidor y tu perfil nunca ha salido de tu teléfono. Un derecho de acceso se contesta con «no consta nada a tu nombre», y es cierto.

Para borrar tus datos no hace falta pedírnoslo a nosotros: borra los datos del sitio en tu navegador y desaparecen. No hay copia nuestra porque nunca la hubo.

Si crees que no se respetan tus derechos, puedes reclamar ante la Agencia Española de Protección de Datos (www.aepd.es).

Base jurídica

En la medida en que hubiera tratamiento por nuestra parte, la base sería el interés legítimo en prestar el servicio solicitado y el consentimiento para lo que lo requiera. Hoy no se recoge ningún dato personal en servidor.

Lo que falta

Esta política no la ha revisado un abogado todavía. Está escrita con la normativa delante y describe con precisión lo que hace el sistema, que es más de lo que suele decir una política de privacidad. Pero LEGAL_COPY_REVIEW sigue sin superarse y se dice aquí en vez de disimularlo.

El punto de partida

Lo que una persona necesita evitar puede revelar una condición de salud. En el marco del RGPD eso es una categoría especial de datos, y el diseño entero parte de ahí.

El formulario de contacto es la excepción

Todo lo que viene después de esta sección describe la aplicación y el sitio. El formulario de contacto funciona al revés y por eso va primero: ahí sí nos envías datos, y a un servidor nuestro.

Qué se recogeNombre, apellidos, teléfono, correo y lo que escribas
Para quéContestarte. Nada más
Base jurídicaTu consentimiento al enviarlo (art. 6.1.a RGPD)
Dónde se guardaUn fichero en nuestro servidor, sin acceso desde la web
Cuánto90 días. Se borra solo
Quién lo veEl titular. No se cede a nadie ni se usa para publicidad

Si nos escribes sobre tu alergia, nos estás dando un dato de salud, que el RGPD protege de forma especial (art. 9). Por eso la página te pide expresamente que no nos cuentes tu historia clínica: para contestarte no nos hace falta. Si aun así lo escribes, se trata con el mismo cuidado que todo lo demás y se borra a los 90 días como el resto.

De tu conexión guardamos un hash de tu dirección IP con una sal que cambia cada día. Sirve para frenar envíos masivos hoy y mañana ya no puede vincularse contigo. La dirección en claro no se guarda en ningún sitio.

No hay subida de ficheros. Ni adjuntos, ni imágenes. No es una limitación que se nos haya olvidado quitar: sin subida no hay fichero que analizar y no hay por dónde entrar.

Y para distinguirte de un robot no usamos reCAPTCHA ni nada de Google. Tu navegador resuelve un pequeño cálculo, tarda alrededor de un segundo y no tienes que hacer nada. Nadie de fuera se entera de que has estado aquí.

Por defecto, nada sale del dispositivo

Salvo el formulario de arriba, no es una opción de configuración: es el comportamiento por defecto, y es el único que existe:

  • Los NO se guardan en localStorage. No hay cuenta, no hay servidor, no hay identificador que enviar.
  • El historial de escaneos es local.
  • La caché de productos es local.
  • No se usa geolocalización. Ni una llamada. Si algún día hay «dónde comprar cerca», se pedirá permiso en ese momento y para eso.
  • No hay cookies. Ni propias ni de terceros.
  • No hay terceros en el camino crítico. El único dominio externo que se toca es Open Food Facts, y solo al buscar un producto.
  • El OCR no toca ningún CDN. Tesseract, su núcleo y los modelos de idioma se sirven desde este mismo dominio. Fotografiar una etiqueta no le cuenta a nadie de fuera que la has fotografiado.

Esta sección llegó a decir que el OCR se descargaba de cdn.jsdelivr.net y que había una CSP en producción. Lo primero dejó de ser cierto al autoalojar el OCR; lo segundo no lo era todavía. Las dos corregidas: el OCR se sirve desde este dominio —18 MB en app/ocr/, con cero peticiones a terceros— y desde el 22/09/2026 sí hay Content-Security-Policy, que impide que un texto que llegue a la pantalla acabe ejecutándose.

Lo que sí se puede comprobar hoy, abriendo el inspector del navegador: al usar la aplicación no sale ni una petición fuera de www.noalergeno.com, salvo la consulta a Open Food Facts cuando se busca un producto.

Minimización

La función sanear() de apps/pwa/js/perfil.js es deliberadamente estricta: descarta cualquier campo que no sea id, nombre, lista de NO validada contra un patrón, condiciones de una lista cerrada, rigor y marca de menor. Si alguien añade un campo al perfil, no se guarda hasta que se añada ahí. Es una lista blanca, no negra.

Separación de identidad

Cuando existan cuentas, la identidad y el perfil de salud no comparten tabla:


users (email_hash)  ──►  user_pseudonyms (pseudonym)  ──►  profiles (owner_pseudonym)
                                                             └─► profile_restrictions

profiles no tiene columna user_id. Vincular una persona con sus alérgenos exige cruzar dos tablas a propósito. Y el correo se guarda como hash, nunca en claro.

Fotos

Antes de leer una foto se redibuja en un <canvas>. Eso no es solo para mejorar el OCR: redibujar elimina los metadatos EXIF, incluida la geolocalización. Lo que se procesa y lo que se muestra como vista previa sale del canvas, no del archivo original.

Analizar tu foto y cedérnosla para mejorar la base de datos son dos permisos distintos. En ocr_jobs, image_retained es false por defecto y solo pasa a true con un consentimiento aparte, registrado en consents con su propósito, su versión de política y cómo se recogió. Las imágenes retenidas llevan retention_until.

Analítica

Eventos permitidos: una lista cerrada de veinte (scan_started, product_found, ocr_success, contains_result…).

Dimensiones prohibidas, filtradas en el propio módulo: perfil, evita, condiciones, alergenos, allergen, nombre, gtin, texto, ingredientes, salud, diagnostico. Si alguien las pasa por error, se descartan antes de registrar nada.

La tabla scan_events tampoco tiene columna de alérgeno ni de perfil. No es un olvido: está comentado en la migración para que nadie la añada sin pensarlo.

Lo que nunca llega a la publicidad

El motor publicitario no recibe perfil, diagnóstico, historial de alérgenos ni historial de escaneos sensible. Su entrada es un contexto que lanza una excepción si detecta un campo de salud. Ver ADS_ARCHITECTURE.md.

Menores

Los perfiles infantiles los gestiona un adulto (profiles.is_minor). No hay publicidad personalizada para menores. La contextual se mantiene, porque no usa nada de la persona.

Pendiente antes de producción

  • [ ] DPIA. Evaluación de impacto documentada.
  • [ ] Registro de actividades de tratamiento.
  • [ ] Políticas de retención concretas por tipo de dato.
  • [ ] Flujos de acceso, exportación y supresión.
  • [ ] Designación de DPO y su procedimiento.
  • [ ] Auditoría ePrivacy. Hoy no hay cookies no esenciales; hay que mantenerlo así y documentarlo.
  • [ ] Base legal para cada tratamiento cuando existan cuentas.