Guide · 3 min de lecture

Bloquez les skimmers de cartes sur votre paiement

Un skimmer, ce sont quelques lignes de JavaScript qui copient les données de carte pendant que le client les saisit. Voici comment ils entrent, et les couches qui les tiennent à distance.

Mis à jour le · HackGrade

Le code et la configuration restent en anglais.

Comment les skimmers entrent

  • Une extension ou un thème vulnérable permet à un attaquant d’ajouter un script à vos pages ou à votre base de données.
  • Un script tiers que vous chargez (chat, statistiques, avis) est lui-même compromis.
  • Un mot de passe administrateur volé permet à quelqu’un de coller un script dans le thème ou dans un champ « code personnalisé ».

1. Inventoriez chaque script du paiement

Listez chaque script des pages panier et paiement, son responsable et sa raison d’être. Supprimez le reste. C’est exactement ce que demande l’exigence 6.4.3 de PCI DSS v4.0.

2. Utilisez des champs de paiement hébergés

Les passerelles de paiement qui affichent les champs de carte dans leur propre iframe (par exemple le Payment Element de Stripe ou les hosted fields de PayPal) gardent les numéros de carte hors de votre page. Les skimmers peuvent encore injecter un faux formulaire : conservez donc aussi les autres couches.

3. Verrouillez le paiement avec CSP

Limitez d’où les scripts peuvent se charger et, tout aussi important, vers où ils peuvent envoyer des données (connect-src, form-action) :

header
Content-Security-Policy: default-src 'self'; script-src 'self' https://js.stripe.com; frame-src https://js.stripe.com; connect-src 'self' https://api.stripe.com; form-action 'self'; object-src 'none'; base-uri 'self'

4. Épinglez les fichiers tiers avec SRI

Pour les fichiers statiques servis par un CDN, Subresource Integrity fait refuser au navigateur un fichier modifié :

HTML
<script src="https://cdn.example.com/lib.min.js"
        integrity="sha384-REPLACE_WITH_THE_FILE_HASH"
        crossorigin="anonymous"></script>

Les SDK de paiement qui changent souvent (comme Stripe.js) ne peuvent pas être épinglés ainsi. Utilisez CSP pour ceux-là.

5. Détectez les modifications

L’exigence 11.6.1 de PCI DSS v4.0 demande un moyen de détecter les modifications non autorisées des scripts et en-têtes des pages de paiement. L’analyse approfondie de l’offre Pro de HackGrade surveille les scripts du paiement : nouvelles sources, modifications, code inline qui envoie des données à l’extérieur et faux formulaires de paiement.

6. Arrêtez les tests de cartes

Des robots utilisent les paiements mal protégés pour tester des cartes volées. Activez les outils antifraude de votre prestataire de paiement, ajoutez un CAPTCHA ou une limite de fréquence au paiement, et surveillez les rafales de petites commandes échouées.

Sources

Guides associés

Gratuit · Immédiat · Sans inscription

Découvrez votre note avant quelqu’un d’autre.

Analyse passive. Rien n’est attaqué sans votre autorisation.

Gratuit pour commencer. Offres payantes dès 12 $ par mois, ou un rapport unique à 29 $. Voir les tarifs