Sécurité des QR codes : risques des QR dynamiques et pièges des URL raccourcies

Publié le 2026-04-13 7 min de lecture

Résumé (TL;DR)

Il y a quelques semaines, j’ai scanné le QR du menu de table d’un café et il redirigeait vers un raccourcisseur ql.st inconnu. En regardant de plus près, un autocollant propre avait été posé par-dessus le QR original. Le propriétaire m’a dit qu’il était là depuis des semaines et que personne ne l’avait remarqué. Il n’existe presque aucune littérature sur le « piratage » du format QR lui-même, et pour cause — les attaques réelles sont aussi ennuyeuses que cela. Quelqu’un imprime un nouvel autocollant. Votre client le suit. Le reste de ce billet essaie de respecter cette réalité : la sécurité QR est surtout du papier, du ruban adhésif et l’URL que vous avez choisie il y a deux ans.

Un QR code n’est pas une primitive de sécurité. C’est un encodage visuel d’une chaîne — généralement une URL — et sa sûreté est presque entièrement fonction de l’URL de destination et de la manière dont le code a été produit. Les QR statiques portent l’URL finale directement et ne peuvent être modifiés après impression. Les QR dynamiques portent une courte URL de redirecteur qui peut être redirigée à volonté, ce qui est pratique mais crée un risque à long terme : si le service de redirection ferme, change de mains ou est compromis, chaque code scanné suit la nouvelle destination. Les raccourcisseurs d’URL ont la même classe de problèmes (expiration, détournement, tracking), ce qui en fait de mauvais choix pour des supports imprimés publics qui devraient fonctionner pendant des années. Une bonne valeur par défaut est d’encoder une URL canonique sur votre propre domaine directement dans un QR statique, et réserver les QR dynamiques ou les liens raccourcis à des campagnes marketing de courte durée où vous prévoyez explicitement la fin de vie du redirecteur.

Contexte et concepts

Les QR codes sont définis par l’ISO/IEC 18004. Les versions vont de 1 à 40 ; les versions supérieures ont plus de modules (cellules de grille) et peuvent porter plus de données. Chaque QR code stocke aussi des données de correction d’erreurs Reed-Solomon à l’un des quatre niveaux :

  • L : jusqu’à environ 7 % récupérables
  • M : jusqu’à environ 15 % récupérables
  • Q : jusqu’à environ 25 % récupérables
  • H : jusqu’à environ 30 % récupérables

Des niveaux de correction plus élevés permettent à la saleté, aux plis ou à un logo superposé d’obscurcir une partie du code sans le casser, mais ils augmentent la densité des modules, ce qui rend les très petits codes imprimés plus difficiles à scanner. Les cartes de visite et les affiches prennent typiquement M par défaut, avec Q ou H choisis quand un logo central est requis.

Les QR statiques intègrent l’URL finale directement dans les modules, donc le résultat scanné est permanent. Les QR dynamiques intègrent une courte URL de redirecteur et reposent sur un fournisseur capable de rediriger la destination. Cette flexibilité est la fonctionnalité — et aussi le risque à long terme — des codes dynamiques.

Il y a aussi un aspect capacité. Un QR code de version 1 (21x21 modules) peut contenir environ 25 caractères alphanumériques à correction M ; un code de version 10 (57x57 modules) peut contenir plus de 300 caractères. Les URL longues vous poussent vers des versions supérieures, qui sont plus denses et plus difficiles à scanner à petite taille. Le court redirecteur d’un QR dynamique est véritablement plus petit sur papier, mais cette compacité se paie en dépendance à long terme. Si la destination qui vous importe vraiment peut être raccourcie dans votre propre domaine (par exemple, example.com/p/123), vous obtenez la plupart du bénéfice de taille sans externaliser la redirection.

Un concept connexe est la zone de silence. Les scanners QR comptent sur une bordure blanche — typiquement de quatre modules de large — autour du code. Si votre mise en page compresse la zone de silence pour économiser de la place, le scan devient peu fiable même si le code lui-même est intact. Quand les graphistes print disent « le QR ne scanne pas », la zone de silence est la première chose à inspecter.

Comparaison et données

CritèreQR statiqueQR dynamique
URL encodéeL’URL de destination finaleUne courte URL de redirecteur
Tracking / analytics de scanPas disponible par défautFonctionnalité standard
Risque d’expirationAucun tant que votre domaine est maintenuDépend du plan, contrat et cycle de vie du fournisseur
Dépendance à un tiersAucuneService de redirection
Surface de phishingSeule l’URL de destination doit être vérifiéeLe détournement ou la cession du redirecteur peut changer silencieusement la destination
Modifiabilité après impressionImpossible, il faut réimprimerPossible

Une URL courte peut paraître plus propre à l’impression, mais les utilisateurs ne peuvent pas vérifier visuellement où elle mène. C’est la propriété même que les attaquants exploitent — vous échangez un peu d’esthétique contre une grande catégorie de risque.

Scénarios concrets

Scénario 1 — Cartes de visite et affiches. J’ai récemment sorti une carte de visite d’un contact de 2019 et scanné son QR par curiosité. La cible bit.ly a renvoyé un 404 — vraisemblablement le plan de raccourcisseur du propriétaire a expiré quand l’entreprise s’est réorganisée. Encodez une URL canonique sur votre propre domaine dans un QR statique. Les supports imprimés circulent souvent pendant des années, et les dépendances de redirecteur survivent rarement aux cycles de hype ou aux réorganisations d’entreprise. Pour les petits codes imprimés, baissez le niveau de correction et minimisez la longueur d’URL pour garder le nombre de modules bas et la fiabilité de scan haute.

Scénario 2 — Mesurer une campagne marketing. Une startup que je connais a utilisé un service populaire de QR dynamique à un salon professionnel ; trois mois plus tard, le plan gratuit a discrètement retiré la fonctionnalité dont elle dépendait, et chaque document physique distribué a commencé à rediriger vers une page « plan expiré ». Quand le tracking est l’objectif entier, envisagez un QR dynamique avec un fournisseur réputé ou un QR statique pointant vers une URL avec paramètres UTM. Je prends maintenant par défaut un chemin de raccourcisseur auto-hébergé comme votredomaine.com/go/summer-2026 : tant que vous détenez le domaine, il n’y a pas d’horloge d’expiration. Si vous choisissez tout de même un QR dynamique tiers, documentez un plan d’arrêt : où la redirection va quand la campagne se termine, et qui possède cette décision.

Scénario 3 — Intégrité de document et vérification. Au lieu d’une simple URL, encodez un hash de document ou un paramètre d’URL signé (par exemple ?d=abc123&sig=...) pour qu’un scanner puisse confirmer que le document correspond à l’original. Sur un projet d’émission de certificats sur lequel j’ai travaillé, nous avons empilé les 16 premiers caractères hexadécimaux d’un hash SHA-256 plus une signature HMAC dans le QR ; cela nous a poussés vers des codes de version 10+, et nous avons dû rééquilibrer la taille d’impression versus la fiabilité de scan. C’est utile pour les contrats, certificats et étiquettes de produits où la détection d’altération compte.

Scénario 4 — Menus de restaurant et bornes publiques. L’envolée post-2020 des QR codes de menu a fait des lieux publics une cible riche pour le phishing par autocollant : un attaquant imprime un QR ressemblant, le place par-dessus le vrai, et le dîneur sans méfiance est redirigé vers une page de collecte d’identifiants. Les mesures défensives sont ennuyeuses mais efficaces : plastifiez le code sur une surface fixe, inspectez quotidiennement, et utilisez une URL canonique sur le domaine propre de votre restaurant pour que les clients qui vérifient l’aperçu puissent la reconnaître.

Idées fausses courantes

« Les QR codes peuvent être piratés. » Le format lui-même n’est typiquement pas le maillon faible. Les vrais risques sont les URL malveillantes encodées à l’intérieur du QR et la manipulation physique — quelqu’un qui colle un nouvel autocollant QR par-dessus le vôtre dans un lieu public. Inspecter visuellement les codes affichés pour détecter des autocollants ajoutés est une habitude de base de sécurité physique.

« Les URL courtes sont plus propres, donc meilleures. » Elles sont plus propres visuellement, mais les utilisateurs ne peuvent pas les vérifier, le service sous-jacent peut fermer ou être compromis, et le QR lui-même devient une dépendance de longue durée à un tiers. Pour un support imprimé de longue durée, une URL canonique longue est plus sûre.

« Une correction d’erreur plus élevée est toujours meilleure. » La correction de niveau H est pratique si vous voulez couvrir le centre avec un logo, mais elle augmente la densité des modules et réduit la fiabilité de scan aux petites tailles d’impression. M est une valeur par défaut sûre typique.

« On peut toujours dire où va un QR. » L’application caméra intégrée d’iOS 17 et 18 montre une bannière d’URL avant d’ouvrir, mais certaines applications caméra OEM Android et des scanners tiers sauteront directement dans le navigateur en un seul tap. Les QR de phishing pour login Wi-Fi public ciblent spécifiquement ce comportement d’ouverture automatique. Désactivez l’ouverture automatique quand c’est possible, et prenez l’habitude de vérifier le domaine avant de taper.

« Un QR que j’ai généré moi-même est automatiquement sûr. » Pas si vous l’avez généré via un service web tiers qui journalise chaque entrée. Certains générateurs QR gratuits sauvegardent les URL soumises et revendent les analytics, ou enveloppent silencieusement votre URL dans leur propre redirecteur pour pouvoir tracer les scans. Lisez la déclaration de confidentialité ou générez le code dans un outil qui tourne entièrement dans votre navigateur.

« L’encodage c’est du chiffrement. » QR est un encodage, pas un schéma de chiffrement. Quiconque dispose d’un scanner peut lire les données encodées, et cela s’applique aux codes-barres en général. Si vous avez besoin de secret, chiffrez la charge utile avant de l’encoder — par exemple, encodez un JWT signé plutôt qu’un paramètre lisible.

Liste de vérification

  1. Combien de temps ce QR doit-il fonctionner ?
    • Années : préférez QR statique + URL de votre propre domaine.
    • Campagne courte : QR dynamique ou paramètres UTM sont raisonnables.
  2. Avez-vous vraiment besoin de tracking ?
    • Non : QR statique est suffisant.
    • Oui : choisissez un fournisseur de QR dynamique réputé, et planifiez la redirection de fin de vie.
  3. Quelle est la taille d’impression ?
    • Très petite : URL plus courte et correction de niveau M.
    • Normale à grande : vous pouvez vous permettre Q ou H si vous voulez un logo superposé.
  4. Le code est-il placé en public ? Inspectez périodiquement pour détecter des altérations ou des autocollants superposés.
  5. L’URL de destination est-elle sûre ? Confirmez HTTPS, propriété du domaine et validité actuelle.
  6. Où le QR est-il généré ? Préférez la génération hors ligne ou dans le navigateur pour que l’URL encodée ne quitte jamais votre appareil en tant qu’entrée de log sur un site tiers.
  7. Que se passe-t-il si le QR échoue ? Concevez un repli : une URL courte imprimée à côté du code, ou un indice lisible par l’humain, pour que le support reste utile même quand un scanner lit mal ou que la destination est temporairement indisponible.

Outil associé

Le générateur de QR codes Patrache Studio construit les codes dans le navigateur, donc l’URL que vous entrez n’est pas envoyée à un serveur externe. Si le QR résultant est intégré dans une image pour le web, associez-le aux recommandations de format du Guide de compression d’images. Si le QR finit sur un paquet de documents que vous comptez distribuer, le flux dans Fusion et découpage PDF dans le navigateur garde tout le pipeline — de l’actif au PDF final — à l’intérieur d’une frontière de confidentialité cohérente.

Références