Seguridad de códigos QR: riesgos de QR dinámicos y trampas de URL acortadas

Publicado el 2026-04-13 7 min de lectura

Resumen (TL;DR)

Hace unas semanas escaneé el QR del menú de mesa de una cafetería y resolvió a un acortador desconocido ql.st. Al mirar de cerca, habían colocado un sticker limpio encima del QR original. El dueño me dijo que llevaba semanas ahí y nadie se había dado cuenta. Prácticamente no existe literatura sobre “hackear” el formato QR en sí mismo, y con razón: los ataques reales son así de aburridos. Alguien imprime un sticker nuevo. Tu cliente lo sigue. El resto de este post intenta respetar esa realidad: la mayor parte de la seguridad QR es papel, cinta y la URL que elegiste hace dos años.

Un código QR no es una primitiva de seguridad. Es una codificación visual de una cadena —normalmente una URL— y su seguridad es casi enteramente función de la URL destino y del modo en que se produjo el código. Los QR estáticos llevan la URL final directamente y no pueden cambiarse después de imprimir. Los QR dinámicos llevan una URL redirectora corta que puede reapuntar a voluntad, lo cual es cómodo pero crea riesgo a largo plazo: si el servicio redirector cierra, cambia de dueño o es comprometido, cada código escaneado sigue el nuevo destino. Los acortadores de URL tienen la misma clase de problemas (expiración, secuestro, tracking), lo que los convierte en malas opciones para materiales impresos públicos que deberían funcionar durante años. Un valor por defecto bueno es codificar una URL canónica de tu propio dominio directamente en un QR estático, y reservar los QR dinámicos o enlaces acortados para campañas de marketing efímeras donde planees explícitamente el fin de vida del redirector.

Antecedentes y conceptos

Los códigos QR están definidos por ISO/IEC 18004. Las versiones van de 1 a 40; versiones más altas tienen más módulos (celdas de cuadrícula) y pueden llevar más datos. Cada código QR también almacena datos de corrección de errores Reed-Solomon en uno de cuatro niveles:

  • L: hasta aproximadamente 7% recuperable
  • M: hasta aproximadamente 15% recuperable
  • Q: hasta aproximadamente 25% recuperable
  • H: hasta aproximadamente 30% recuperable

Niveles de corrección más altos permiten que suciedad, pliegues o un logotipo superpuesto oscurezcan parte del código sin romperlo, pero aumentan la densidad de módulos, lo que dificulta escanear códigos impresos muy pequeños. Las tarjetas de visita y pósteres suelen usar M por defecto, con Q o H elegidos cuando se requiere un logo central.

Los QR estáticos embeben la URL final directamente en los módulos, así que el resultado escaneado es permanente. Los QR dinámicos embeben una URL redirectora corta y dependen de un proveedor que puede reapuntar el destino. Esa flexibilidad es la característica, y también el riesgo a largo plazo, de los códigos dinámicos.

También hay un ángulo de capacidad. Un QR Versión 1 (21x21 módulos) puede contener unos 25 caracteres alfanuméricos con corrección M; un código Versión 10 (57x57 módulos) puede contener más de 300 caracteres. URLs largas te empujan a versiones más altas, que son más densas y más difíciles de escanear a tamaños pequeños. El redirector corto de un QR dinámico es genuinamente más pequeño en papel, pero esa compacidad se paga en dependencia a largo plazo. Si el destino que realmente te importa puede acortarse dentro de tu propio dominio (por ejemplo, example.com/p/123), obtienes casi todo el beneficio de tamaño sin subcontratar la redirección.

Un concepto relacionado es la zona tranquila (quiet zone). Los escáneres QR dependen de un borde en blanco —típicamente de cuatro módulos de ancho— alrededor del código. Si tu layout comprime la zona tranquila para ahorrar espacio, el escaneo se vuelve poco fiable aunque el código en sí esté intacto. Cuando los diseñadores de impresión dicen “el QR no escanea”, la zona tranquila es lo primero que hay que inspeccionar.

Comparación y datos

CriterioQR estáticoQR dinámico
URL codificadaLa URL de destino finalUna URL redirectora corta
Tracking / analítica de escaneosNo disponible por defectoCaracterística estándar
Riesgo de expiraciónNinguno mientras tu dominio esté mantenidoDepende del plan, contrato y ciclo de vida del proveedor
Dependencia de tercerosNingunaServicio redirector
Superficie de phishingSolo hay que vetar la URL destinoEl secuestro o traspaso del redirector puede cambiar destino silenciosamente
Editabilidad tras imprimirNo es posible, hay que reimprimirPosible

Una URL corta puede verse más limpia en impresión, pero los usuarios no pueden verificar visualmente adónde lleva. Esa es la misma propiedad que los atacantes explotan: estás cambiando un poco de estética por una categoría grande de riesgo.

Escenarios reales

Escenario 1 — Tarjetas de visita y pósteres. Hace poco saqué una tarjeta de un contacto de 2019 y escaneé su QR por curiosidad. El destino bit.ly devolvió un 404; presumiblemente el plan de acortador del dueño caducó cuando la compañía se reorganizó. Codifica una URL canónica de tu propio dominio en un QR estático. Los materiales impresos a menudo circulan durante años, y las dependencias de redirector rara vez sobreviven a ciclos de hype o reorgs corporativos. Para códigos impresos pequeños, baja el nivel de corrección y minimiza la longitud de URL para mantener bajo el conteo de módulos y alta la fiabilidad de escaneo.

Escenario 2 — Medir una campaña de marketing. Una startup que conozco usó un servicio popular de QR dinámico en una feria; tres meses después, el plan gratuito retiró silenciosamente la característica de la que dependían, y cada folleto físico empezó a redirigir a una página de “plan expirado”. Cuando el tracking es el punto entero, considera QR dinámico con un proveedor reputado o QR estático apuntando a una URL con parámetros UTM. Ahora uso por defecto una ruta de acortador autoalojada como yourdomain.com/go/summer-2026: mientras mantengas el dominio, no hay reloj de expiración. Si aun así eliges QR dinámico de terceros, documenta un plan de apagado: adónde va la redirección cuando termina la campaña y quién posee esa decisión.

Escenario 3 — Integridad y verificación de documentos. En vez de solo una URL, codifica un hash de documento o un parámetro de URL firmado (p. ej., ?d=abc123&sig=...) para que un escáner pueda confirmar que el documento coincide con el original. En un proyecto de emisión de certificados donde trabajé, empaquetamos los primeros 16 caracteres hex de un hash SHA-256 más una firma HMAC en el QR; eso nos empujó a códigos Versión 10+, y tuvimos que reequilibrar el tamaño de impresión frente a la fiabilidad de escaneo. Esto es útil para contratos, certificados y etiquetas de producto donde importa la detección de manipulación.

Escenario 4 — Menús de restaurante y kioscos públicos. El salto post-2020 en códigos QR de menú convirtió los lugares públicos en un objetivo rico para phishing por sticker: un atacante imprime un QR parecido, lo coloca sobre el real, y el comensal desprevenido es redirigido a una página de captura de credenciales. Las medidas defensivas son aburridas pero efectivas: lamina el código sobre una superficie fija, inspecciónalo a diario y usa una URL canónica del propio dominio del restaurante para que los clientes que revisen la vista previa puedan reconocerla.

Errores comunes

“Los códigos QR pueden ser hackeados.” El formato en sí no es típicamente el eslabón débil. Los riesgos reales son URLs maliciosas codificadas dentro del QR y manipulación física: alguien pegando un sticker QR nuevo encima del tuyo en un lugar público. Inspeccionar visualmente los códigos expuestos buscando stickers añadidos es un hábito básico de seguridad física.

“Las URLs cortas son más limpias, así que son mejores.” Son más limpias visualmente, pero los usuarios no pueden verificarlas, el servicio subyacente puede cerrar o ser comprometido, y el QR en sí se vuelve una dependencia de larga vida sobre un tercero. Para material impreso de larga vida, una URL larga canónica es más segura.

“La corrección de errores más alta siempre es mejor.” La corrección nivel H es útil si quieres cubrir el centro con un logo, pero aumenta la densidad de módulos y reduce la fiabilidad de escaneo a tamaños de impresión pequeños. M es un valor por defecto seguro típico.

“Siempre puedes saber adónde va un QR.” La app de cámara integrada en iOS 17 y 18 muestra un banner con la URL antes de abrir, pero algunas apps de cámara de OEM Android y escáneres de terceros saltan directamente al navegador con un toque. Los QR de phishing de login Wi-Fi público específicamente apuntan a ese comportamiento auto-abrir. Desactiva auto-abrir donde sea posible y haz hábito verificar el dominio antes de tocar.

“Un QR que yo mismo generé es automáticamente seguro.” No si lo generaste a través de un servicio web de terceros que registra cada entrada. Algunos generadores QR gratuitos guardan las URLs enviadas y revenden la analítica, o envuelven silenciosamente tu URL en su propio redirector para rastrear escaneos. Lee la declaración de privacidad o genera el código en una herramienta que corra enteramente en tu navegador.

“Codificación es cifrado.” QR es una codificación, no un esquema de cifrado. Cualquiera con un escáner puede leer los datos codificados, y lo mismo aplica a los códigos de barras en general. Si necesitas secreto, cifra el payload antes de codificarlo; por ejemplo, codifica un JWT firmado en lugar de un parámetro legible.

Lista de verificación

  1. ¿Cuánto debe funcionar este QR?
    • Años: prefiere QR estático + URL de tu propio dominio.
    • Campaña corta: QR dinámico o parámetros UTM son razonables.
  2. ¿Realmente necesitas tracking?
    • No: el QR estático es suficiente.
    • Sí: elige un proveedor de QR dinámico reputado y planifica la redirección al fin de vida.
  3. ¿Cuál es el tamaño de impresión?
    • Muy pequeño: URL más corta y corrección nivel M.
    • Normal a grande: puedes permitirte Q o H si quieres superposición de logo.
  4. ¿Se coloca el código en público? Inspecciona periódicamente buscando manipulación o stickers superpuestos.
  5. ¿Es segura la URL destino? Confirma HTTPS, propiedad de dominio y validez actual.
  6. ¿Dónde se genera el QR? Prefiere generación offline o en navegador para que la URL codificada nunca salga de tu dispositivo como entrada de log en un sitio de terceros.
  7. ¿Qué pasa si el QR falla? Diseña un fallback: una URL corta impresa junto al código o una pista legible por humanos, para que el material siga siendo útil aun cuando un escáner falle en leer o el destino esté temporalmente caído.

Herramienta relacionada

El generador de códigos QR de Patrache Studio construye códigos en el navegador, así que la URL que ingresas no se envía a un servidor externo. Si el QR resultante se embebe en una imagen para la web, combínalo con la guía de formato en la Guía de compresión de imágenes. Si el QR acaba en un paquete de documentos que pretendes distribuir, el flujo en Fusión y división de PDF en el navegador mantiene toda la pipeline —del asset al PDF final— dentro de un límite de privacidad consistente.

Referencias