Sicurezza dei codici QR: rischi dei QR dinamici e trappole degli URL abbreviati

Pubblicato il 2026-04-13 7 min di lettura

Riepilogo (TL;DR)

Qualche settimana fa ho scansionato il QR del menù da tavolo di un bar e risolveva a uno shortener sconosciuto ql.st. Guardando meglio, un adesivo pulito era stato posato sopra il QR originale. Il proprietario mi ha detto che era lì da settimane e nessuno se ne era accorto. Non c’è quasi letteratura sull‘“hacking” del formato QR in sé, e con buona ragione – gli attacchi reali sono noiosi quanto questo. Qualcuno stampa un nuovo adesivo. Il tuo cliente lo segue. Il resto di questo post cerca di rispettare quella realtà: la maggior parte della sicurezza QR è fatta di carta, nastro adesivo e l’URL che hai scelto due anni fa.

Un codice QR non è una primitiva di sicurezza. È una codifica visiva di una stringa – di solito un URL – e la sua sicurezza è quasi interamente funzione dell’URL di destinazione e del modo in cui il codice è stato prodotto. I QR statici portano direttamente l’URL finale e non possono essere cambiati dopo la stampa. I QR dinamici portano un URL redirector breve che può essere ripuntato a piacere, cosa comoda ma che crea rischio a lungo termine: se il servizio redirector chiude, cambia mano o viene compromesso, ogni codice scansionato segue la nuova destinazione. Gli abbreviatori di URL hanno la stessa classe di problemi (scadenza, hijack, tracciamento), il che li rende scelte povere per materiale pubblico stampato che deve funzionare per anni. Un buon default è codificare un URL canonico sul tuo dominio direttamente in un QR statico, e riservare QR dinamici o link abbreviati a campagne marketing di breve durata dove pianifichi esplicitamente la fine vita del redirector.

Contesto e concetti

I codici QR sono definiti dall’ISO/IEC 18004. Le versioni vanno da 1 a 40; le versioni più alte hanno più moduli (celle della griglia) e possono trasportare più dati. Ogni codice QR memorizza anche dati di correzione errori Reed-Solomon a uno di quattro livelli:

  • L: fino al 7% circa recuperabile
  • M: fino al 15% circa recuperabile
  • Q: fino al 25% circa recuperabile
  • H: fino al 30% circa recuperabile

Livelli di correzione più alti permettono a sporco, pieghe o un logo sovrapposto di oscurare parte del codice senza romperlo, ma aumentano la densità dei moduli, il che rende codici stampati molto piccoli più difficili da scansionare. Biglietti da visita e poster solitamente usano M come default, con Q o H scelti quando è richiesto un logo centrale.

I codici QR statici incorporano direttamente l’URL finale nei moduli, quindi il risultato scansionato è permanente. I codici QR dinamici incorporano un URL redirector breve e si affidano a un provider che può ripuntare la destinazione. Quella flessibilità è la feature – e anche il rischio a lungo termine – dei codici dinamici.

C’è anche un aspetto di capacità. Un codice QR Versione 1 (21×21 moduli) può contenere circa 25 caratteri alfanumerici a correzione M; un codice Versione 10 (57×57 moduli) può contenerne più di 300. Gli URL lunghi ti spingono a versioni più alte, che sono più dense e più difficili da scansionare a piccole dimensioni. Il redirector breve di un QR dinamico è davvero più piccolo sulla carta, ma quella compattezza si paga in dipendenza a lungo termine. Se la destinazione che davvero ti interessa può essere abbreviata dentro il tuo dominio (per esempio, example.com/p/123), ottieni gran parte del beneficio di dimensione senza esternalizzare il redirect.

Un concetto correlato è la quiet zone. Gli scanner QR si affidano a un bordo bianco – tipicamente largo quattro moduli – attorno al codice. Se il tuo layout comprime la quiet zone per risparmiare spazio, la scansione diventa inaffidabile anche se il codice in sé è intatto. Quando i designer di stampa dicono “il QR non si scansiona”, la quiet zone è la prima cosa da ispezionare.

Confronto e dati

CriterioQR staticoQR dinamico
URL codificatoL’URL di destinazione finaleUn URL redirector breve
Tracciamento scansioni / analyticsNon disponibile per defaultFeature standard
Rischio di scadenzaNessuno finché mantieni il tuo dominioDipende da piano, contratto e ciclo di vita del provider
Dipendenza da terze partiNessunaServizio redirector
Superficie di phishingSolo l’URL di destinazione va verificatoHijack o passaggio di consegne del redirector può cambiare la destinazione silenziosamente
Modificabile dopo la stampaNon possibile, ristampa obbligatoriaPossibile

Un URL breve può apparire più pulito in stampa, ma gli utenti non possono verificare visivamente dove conduce. Questa è la stessa proprietà che gli attaccanti sfruttano – stai scambiando un po’ di estetica per una grande categoria di rischio.

Scenari reali

Scenario 1 — Biglietti da visita e poster. Ho recentemente tirato fuori un biglietto da visita di un contatto del 2019 e ne ho scansionato il QR per curiosità. La destinazione bit.ly restituiva un 404 – presumibilmente il piano shortener del proprietario era scaduto quando l’azienda si era riorganizzata. Codifica un URL canonico sul tuo dominio in un QR statico. I materiali stampati spesso circolano per anni, e le dipendenze da redirector raramente sopravvivono a cicli di hype o riorganizzazioni aziendali. Per codici stampati piccoli, abbassa il livello di correzione e minimizza la lunghezza dell’URL per tenere basso il numero di moduli e alta l’affidabilità di scansione.

Scenario 2 — Misurare una campagna marketing. Una startup che conosco ha usato un popolare servizio di QR dinamico a una fiera; tre mesi dopo, il tier gratuito ha silenziosamente ritirato la feature su cui contavano, e ogni volantino fisico ha iniziato a reindirizzare a una pagina “piano scaduto”. Quando il tracciamento è tutto lo scopo, considera QR dinamico con un provider reputato o QR statico che punta a un URL con parametri UTM. Ora faccio il default a un path di shortener self-hosted come tuodominio.com/go/estate-2026: finché possiedi il dominio, non c’è clock di scadenza. Se scegli comunque QR dinamico di terze parti, documenta un piano di chiusura: dove va il redirect quando la campagna finisce, e chi possiede quella decisione.

Scenario 3 — Integrità e verifica dei documenti. Invece del solo URL, codifica un hash del documento o un parametro URL firmato (es. ?d=abc123&sig=...) così che uno scanner possa confermare che il documento corrisponde all’originale. In un progetto di emissione certificati a cui ho lavorato, abbiamo impacchettato i primi 16 caratteri esadecimali di un hash SHA-256 più una firma HMAC nel QR; questo ci ha spinti a codici Versione 10+, e abbiamo dovuto riequilibrare dimensione di stampa e affidabilità di scansione. Questo è utile per contratti, certificati ed etichette di prodotto dove conta la rilevazione di manomissioni.

Scenario 4 — Menù di ristoranti e chioschi pubblici. L’impennata post-2020 dei codici QR per menù ha reso i luoghi pubblici un bersaglio ricco per il phishing basato su adesivi: un attaccante stampa un QR somigliante, lo posa sopra quello reale, e il cliente ignaro viene reindirizzato a una pagina che ruba credenziali. Le misure difensive sono noiose ma efficaci: plastifica il codice su una superficie fissa, ispeziona ogni giorno, e usa un URL canonico sul dominio del tuo ristorante così che i clienti che controllano il preview possano riconoscerlo.

Errori comuni

“I codici QR possono essere hackerati.” Il formato in sé non è tipicamente l’anello debole. I rischi reali sono URL malevoli codificati dentro il QR e manomissione fisica – qualcuno che incolla un nuovo adesivo QR sopra il tuo in un luogo pubblico. Ispezionare visivamente i codici esposti per adesivi aggiunti è un’abitudine basilare di sicurezza fisica.

“Gli URL brevi sono più puliti, quindi sono migliori.” Sono più puliti visivamente, ma gli utenti non possono verificarli, il servizio sottostante può chiudere o essere compromesso, e il QR stesso diventa una dipendenza di lunga durata da una terza parte. Per materiale stampato di lunga vita, un URL canonico lungo è più sicuro.

“Correzione errori più alta è sempre meglio.” La correzione di livello H è comoda se vuoi coprire il centro con un logo, ma aumenta la densità dei moduli e riduce l’affidabilità di scansione a piccole dimensioni di stampa. M è un default sicuro tipico.

“Puoi sempre vedere dove va un QR.” L’app fotocamera integrata di iOS 17 e 18 mostra un banner con l’URL prima di aprire, ma alcune app fotocamera di OEM Android e scanner di terze parti saltano dritti nel browser con un singolo tocco. I QR di phishing per login Wi-Fi pubblico puntano specificamente a quel comportamento di auto-apertura. Disabilita l’auto-apertura dove possibile, e rendi abitudine verificare il dominio prima di toccare.

“Un QR che ho generato io stesso è automaticamente sicuro.” Non se l’hai generato tramite un servizio web di terze parti che logga ogni input. Alcuni generatori QR gratuiti salvano gli URL sottomessi e rivendono gli analytics, o avvolgono silenziosamente il tuo URL nel loro redirector per tracciare le scansioni. Leggi l’informativa sulla privacy o genera il codice in uno strumento che gira interamente nel tuo browser.

“Codifica è cifratura.” QR è una codifica, non uno schema di cifratura. Chiunque con uno scanner può leggere i dati codificati, e lo stesso vale per i codici a barre in generale. Se ti serve segretezza, cifra il payload prima di codificarlo – per esempio, codifica un JWT firmato invece di un parametro leggibile.

Lista di controllo

  1. Per quanto tempo questo QR deve funzionare?
    • Anni: preferisci QR statico + URL sul tuo dominio.
    • Campagna breve: QR dinamico o parametri UTM sono ragionevoli.
  2. Ti serve davvero il tracciamento?
    • No: QR statico è sufficiente.
    • Sì: scegli un provider QR dinamico reputato, e pianifica il redirect di fine vita.
  3. Qual è la dimensione di stampa?
    • Molto piccola: URL più corto e correzione di livello M.
    • Da normale a grande: ti puoi permettere Q o H se vuoi un logo sovrapposto.
  4. Il codice è posto in pubblico? Ispeziona periodicamente per manomissioni o adesivi sovrapposti.
  5. L’URL di destinazione è sicuro? Conferma HTTPS, proprietà del dominio e validità attuale.
  6. Dove è generato il QR? Preferisci la generazione offline o nel browser così che l’URL codificato non lasci mai il tuo dispositivo come log su un sito di terze parti.
  7. Cosa succede se il QR fallisce? Progetta un fallback: un URL breve stampato accanto al codice, o un suggerimento leggibile, così che il materiale resti utile anche quando uno scanner sbaglia o la destinazione è temporaneamente down.

Strumento correlato

Il generatore di codici QR di Patrache Studio costruisce codici nel browser, così l’URL che inserisci non viene inviato a un server esterno. Se il QR risultante viene incorporato in un’immagine per il web, abbinalo alla guida di formato nella Guida alla compressione delle immagini. Se il QR finisce su un pacchetto di documenti che intendi distribuire, il flusso in Unione e separazione di PDF nel browser mantiene l’intera pipeline – dall’asset al PDF finale – dentro un perimetro di privacy coerente.

Riferimenti