En octobre, des applications de vitrine compromises ont redirigé des acheteurs vers un faux checkout qui volait leurs données de carte. Avec des script tags gelés et désactivés en mars 2027, voici comment auditer chaque script tiers de votre boutique Shopify avant le Black Friday.
Le 10 octobre 2026, le développeur Roman Zipp clique sur « Paiement » dans une boutique Shopify connue et arrive sur une page qui ressemble au checkout Shopify, mais qui n'en est pas un. Les chercheurs ont remonté la redirection jusqu'à du code servi par des applications tierces de vitrine : un endpoint de configuration d'un éditeur d'applications renvoyait un script qui remplaçait le vrai checkout par une copie hébergée sur un domaine signalé comme biliing[.]top, et un cas similaire impliquant un second éditeur a été mis au jour la même semaine.
La fausse page capturait les données de carte, puis renvoyait l'acheteur vers le vrai checkout : la commande se finalisait normalement. Du point de vue du marchand, rien ne semblait anormal. De nouvelles activités étaient encore signalées le 18 octobre.
Cette attaque n'a pas cassé le checkout Shopify lui-même. Elle a exploité du JavaScript que les marchands avaient volontairement chargé sur leur vitrine via des applications. En principe, tout script exécuté sur votre vitrine peut intercepter le bouton de paiement. C'est ce risque qu'il faut auditer.
Trois raisons en font une priorité de novembre plutôt qu'un chantier de janvier :
| Date | Ce qui change | Qui est concerné |
|---|---|---|
| 26 août 2026 | Les script tags ne s'exécutent plus sur la page Statut de commande / Merci | Boutiques hors Plus (les boutiques Plus étaient concernées plus tôt) |
| 1er octobre 2026 | scriptTagCreate et scriptTagUpdate renvoient des erreurs sur toutes les versions d'API. Les tags existants continuent de fonctionner | Toutes les boutiques et applications |
| 1er mars 2027 | Shopify cesse d'injecter les script tags dans les vitrines | Toutes les boutiques |
Le remplaçant est un bloc app embed livré via une extension d'application de thème, plus les web pixels pour le suivi. Attention : un app embed reste désactivé tant que le marchand ne l'active pas dans l'éditeur de thème. Shopify prévoyait un avertissement à l'installation pour les applications utilisant encore des script tags, mais l'a suspendu pour l'instant et indique qu'il réexaminera l'usage en janvier.
checkout.shopify.com, jamais un hôte inconnu. Répétez sur mobile et depuis un tiroir de panier, car les scripts n'interceptent souvent qu'un seul point d'entrée.<script src= et asset_url dans votre thème, et supprimez tout ce qui est lié à une application que vous n'utilisez plus.Collez ce code dans la console sur n'importe quelle page de la vitrine. Il regroupe chaque script externe par origine, signale les scripts inline qui mentionnent le checkout et vérifie où pointent réellement le formulaire du panier et les liens de paiement :
// Inventaire des scripts de la vitrine : à coller dans la console DevTools
(() => {
const ownHost = location.hostname;
const trusted = [ownHost, "cdn.shopify.com", "checkout.shopify.com", "shop.app"];
const byOrigin = {};
document.querySelectorAll("script[src]").forEach((s) => {
const url = new URL(s.src, location.href);
(byOrigin[url.hostname] ||= []).push(url.pathname);
});
console.group("Origines des scripts externes");
Object.entries(byOrigin)
.sort((a, b) => b[1].length - a[1].length)
.forEach(([host, paths]) => {
const flag = trusted.some((t) => host.endsWith(t)) ? "" : " <- à vérifier";
console.log(`${host} (${paths.length})${flag}`);
});
console.groupEnd();
const inlineCheckout = [...document.querySelectorAll("script:not([src])")]
.filter((s) => /checkout/i.test(s.textContent)).length;
console.log(`Scripts inline mentionnant "checkout" : ${inlineCheckout}`);
const targets = [
...[...document.querySelectorAll('form[action*="cart"], form[action*="checkout"]')].map((f) => f.action),
...[...document.querySelectorAll('a[href*="checkout"]')].map((a) => a.href),
];
console.group("Cibles du panier et du checkout");
targets.forEach((t) => {
const host = new URL(t, location.href).hostname;
console.log(`${t}${trusted.some((x) => host.endsWith(x)) ? "" : " <- HÔTE INATTENDU"}`);
});
console.groupEnd();
})();C'est un instantané, pas une garantie. Un script malveillant peut ne réécrire le bouton qu'au clic, ou seulement pour certains visiteurs : combinez-le avec le test manuel du checkout et la surveillance décrite plus bas.
Si vous développez ou maintenez une application Shopify, listez les script tags que votre application possède encore. La requête scriptTags exige le scope read_script_tags et ne renvoie que les tags créés par l'application appelante :
{
"query": "query { scriptTags(first: 50) { nodes { id src displayScope cache createdAt } } }"
}Pour chaque résultat, livrez le bloc app embed ou le web pixel équivalent, demandez aux marchands de l'activer dans l'éditeur de thème, puis supprimez l'ancien tag avec scriptTagDelete. N'attendez pas mars : un marchand qui installe votre application aujourd'hui n'obtient déjà plus aucun script tag fonctionnel.
Un audit ponctuel détecte ce qui est présent aujourd'hui. Pour repérer un changement pendant la Cyber Week, planifiez une vérification :
Nous construisons généralement cela sous forme d'un petit workflow n8n qui publie dans Slack ou par e-mail. Son coût d'exécution est quasi nul et il complète bien les alertes opérationnelles décrites dans notre article sur les alertes e-mail ops Shopify.
Moins de scripts, c'est aussi une vitrine plus rapide. Chaque script d'application supprimé pendant cet audit, c'est une requête de moins en concurrence avec vos images produit. Consultez notre checklist d'audit Core Web Vitals Shopify pour la partie performance.
L'Édition Automne '26 a introduit Shopify Protect, avec des règles anti-fraude testables sur l'historique et des réponses aux litiges rédigées par l'IA. Il aide sur la fraude au paiement, mais il n'inspecte pas le JavaScript exécuté sur votre vitrine. L'hygiène des scripts reste votre responsabilité. Nous présentons Protect dans notre tri de l'Édition Automne '26.
Nous auditons les scripts de vitrine dans chaque mission d'optimisation de la vitesse Shopify, et nous migrons les applications sur mesure des script tags vers les app embeds et les web pixels dans le cadre du développement d'applications Shopify. Si vous voulez un regard extérieur avant le Black Friday, contactez-nous.
Aucun rapport public ne l'indique. La campagne signalée exploitait du code chargé via des applications tierces de vitrine. Le checkout de Shopify était la destination finale, ce qui explique pourquoi les commandes paraissaient normales.
Faites le test du checkout en navigation privée et l'inventaire en console décrits plus haut. Si vous trouvez un hôte de paiement inattendu ou une origine de script inconnue, supprimez l'application concernée, contactez l'éditeur et le support Shopify, et examinez les rétrofacturations et plaintes clients récentes liées à des fraudes à la carte.
Toute fonctionnalité d'application qui repose encore sur des script tags de vitrine cessera de se charger à cette date. Les applications passées aux blocs app embed ou aux web pixels continuent de fonctionner, mais vous devez activer l'app embed dans l'éditeur de thème.
Cela réduit le risque sans le supprimer. Les app embeds exécutent aussi du JavaScript sur votre vitrine. Le vrai contrôle consiste à savoir exactement quels scripts s'exécutent, à qui ils appartiennent et s'ils chargent du code depuis des endpoints distants.
Oui, si des scripts tiers sont chargés dans le frontend headless. Les vitrines Hydrogen et Next.js doivent appliquer le même inventaire, la même liste d'origines approuvées et la même surveillance.
Le journal
Architecture, montée en charge et le travail derrière la livraison. Des notes de Sentinu, de temps en temps, et rien d'autre.

Une checklist d'ingénieur senior pour auditer les Core Web Vitals d'une boutique Shopify en 2026. Diagnostiquer INP, LCP et CLS, identifier les apps qui plombent la performance, et les corriger sans casser la boutique.

Le Black Friday est dans treize semaines. Voici le travail technique à réaliser avant le gel de code, séquencé pour que rien n'atterrisse dans la semaine où tout se joue.

L'Édition Exponential de Shopify arrive quatre semaines avant le Black Friday avec plus de 150 nouveautés et deux échéances API fermes. Voici un tri côté développeur : ce qu'il faut traiter maintenant, ce qu'il faut vérifier avec prudence et ce qu'il faut planifier pour janvier.