Cette page explique comment protéger efficacement les transactions de paiement contre les attaques telles que le carding, la fraude par carte volée et la fraude par piratage de compte à l'aide de la prévention des fraudes reCAPTCHA.
La prévention des fraudes reCAPTCHA vous aide à protéger les transactions de paiement en identifiant les attaques manuelles ciblées et les tentatives de fraude à grande échelle. Il entraîne automatiquement des modèles de comportement et de transaction pour identifier les événements susceptibles d'être frauduleux et pouvant entraîner une contestation ou un rejet de débit si acceptés.
Dans le cadre de ces modèles, la prévention des fraudes reCAPTCHA examine les signaux de transaction pour permettre la détection des fraudes. Par exemple, une série de tentatives d'achat à bas prix peut indiquer une attaque par carte. Dans la réponse, vous recevez des scores de risque pour différents types de fraude, que vous pouvez utiliser pour envoyer la transaction à un examen manuel ou bloquer directement les transactions suffisamment suspectes.
Pour configurer la prévention des fraudes reCAPTCHA, procédez comme suit:
-
Lorsque le code JavaScript est exécuté, reCAPTCHA génère un jeton reCAPTCHA unique pour chaque session utilisateur et collecte des données sur le comportement de l'utilisateur pour l'évaluer.
-
Dans la réponse de la requête API create assessment, reCAPTCHA fournit un score pour le risque de transaction et un code de motif supplémentaire (par exemple,
suspected_carding
), le cas échéant. Déterminez l'action suivante à effectuer par vos utilisateurs en fonction des scores.
Vous pouvez choisir d'autoriser la transaction, de demander une validation supplémentaire, de la transmettre pour examen manuel ou de la bloquer.
Avant de commencer
Si vous débutez avec reCAPTCHA, procédez comme suit:
Activez la prévention des fraudes reCAPTCHA dans votre projet Google Cloud:
Dans la console Google Cloud, accédez à la page reCAPTCHA.
Vérifiez que le nom de votre projet s'affiche dans le sélecteur de ressources.
Si le nom de votre projet n'apparaît pas, cliquez sur le sélecteur de ressource, puis sélectionnez votre projet.
Cliquez sur
Paramètres.Dans le volet Prévention des fraudes, cliquez sur Configurer.
Activez l'option Activer, puis cliquez sur Enregistrer.
Assurez-vous que votre environnement est compatible avec les jetons de plus de 8 Ko, car la prévention des fraudes reCAPTCHA peut utiliser des jetons plus volumineux.
Installer reCAPTCHA sur l'interface de paiement
Pour commencer à détecter des attaques, installez une clé reCAPTCHA basée sur des scores sur chaque page de votre parcours utilisateur de paiement. Cela inclut l'interface dans laquelle un utilisateur examine son panier, sélectionne son mode de paiement et finalise l'achat. Une fois que l'utilisateur a effectué sa sélection à chaque étape, appelez grecaptcha.enterprise.execute()
pour générer un jeton. Pour savoir comment installer des clés basées sur des scores et appeler execute()
, consultez la section Installer des clés basées sur des scores.
L'exemple suivant montre comment intégrer une clé basée sur des scores à un événement de transaction par carte de crédit:
function submitForm() { grecaptcha.enterprise.ready(function() { grecaptcha.enterprise.execute( 'reCAPTCHA_site_key', {action: 'purchase'}).then(function(token) { document.getElementById("token").value = token; document.getElementByID("paymentForm").submit(); }); }); }
<form id="paymentForm" action="?" method="POST"> Total: $1.99 Credit Card Number: <input name="cc-number" id="cc-number" autocomplete="cc-number"><br/> <input type="hidden" id="token" name="recaptcha_token"/> <button onclick="submitForm()">Purchase</button> </form>
<script src="https://www.google.com/recaptcha/enterprise.js" async defer></script>
Vous pouvez tester ce code dans JSFiddle en cliquant sur l'icône <>
dans l'angle supérieur droit de la fenêtre de code.
<html> <head> <title>Protected Payment</title> <script src="https://www.google.com/recaptcha/enterprise.js" async defer></script> <script> function submitForm() { grecaptcha.enterprise.ready(function() { grecaptcha.enterprise.execute( 'reCAPTCHA_site_key', {action: 'purchase'}).then(function(token) { document.getElementById("token").value = token; document.getElementByID("paymentForm").submit(); }); }); } </script> </head> <body> <form id="paymentForm" action="?" method="POST"> Total: $1.99 Credit Card Number: <input name="cc-number" id="cc-number" autocomplete="cc-number"><br/> <input type="hidden" id="token" name="recaptcha_token"/> <button onclick="submitForm()">Purchase</button> </form> </body> </html>
Créer des évaluations à l'aide de données de transaction
Pour activer les évaluations de fraude de paiement, créez des évaluations avec des données de transaction à l'aide des champs supplémentaires de la méthode projects.assessments.create.
L'intégration la plus simple inclut transaction_id
, payment_method
, card_bin
et value
. Pour améliorer la qualité de la détection, nous vous recommandons d'ajouter des champs facultatifs tels que email
et billing_address
.
{ "event": { "token": "YOUR_TOKEN", "site_key": "KEY_ID", "expected_action": "YOUR_CHECKOUT_ACTION_NAME", "transaction_data": { "transaction_id": "txid-1234567890", "payment_method": "credit-card", "card_bin": "411111", "card_last_four": "1234", "currency_code": "USD", "value": 39.98, "user": { "email": "someEmailAddress@example.com" }, "billing_address": { "recipient": "name1 name2", "address": [ "123 Street Name", "Apt 1" ], "locality": "Sunnyvale", "administrative_area": "CA", "region_code": "USA", "postal_code": "123456" } } } }
Pour améliorer la qualité des scores, nous vous recommandons d'envoyer des signaux supplémentaires.
Pour savoir comment créer des évaluations, consultez Créer une évaluation pour votre site Web. reCAPTCHA Fraud Prevention peut utiliser des jetons plus volumineux. Assurez-vous donc que la requête est envoyée dans une requête POST plutôt que GET, et dans le corps, et non dans un en-tête.
Interpréter les évaluations
Une fois que vous avez commencé à envoyer les données de transaction, vous recevez des évaluations sous forme de réponse JSON avec le composant fraudPreventionAssessment
dans riskAnalysis
.
Voici un exemple de réponse:
{ "event": {.... .... } ..... .... .... "riskAnalysis": { "score": "0.5" "reasons": SUSPECTED_CARDING } "fraudPreventionAssessment": { "transactionRisk": 0.9, } }
La réponse que vous recevez inclut un score et des codes de motif, le cas échéant. Plus le score est élevé, plus la transaction a de probabilités d'être frauduleuse et risquée. À l'inverse, plus le score est faible, plus la transaction a de probabilités d'être légitime. Par exemple, un score de 0,9 indique que la transaction est plus susceptible d'être frauduleuse et risquée, tandis qu'un score de 0,1 indique qu'elle est plus susceptible d'être légitime.
Vous êtes responsable des actions que vous prenez en fonction de l'évaluation.
Pour une intégration plus simple, vous pouvez définir des seuils sur transactionRisk
pour contribuer à votre décision. Par exemple, il peut contribuer à l'envoi d'une demande d'examen manuel ou au refus direct des transactions susceptibles d'être frauduleuses.
Vous pouvez également utiliser le score dans vos propres workflows de lutte contre la fraude ou dans les règles de votre système existant. reCAPTCHA examine des signaux uniques et offre une visibilité unique sur le comportement sur Internet. Vous pouvez donc vous attendre à une valeur incrémentielle, même avec un moteur de détection des fraudes déjà mature.
Étape suivante
- Pour améliorer la qualité de la détection de fraude, découvrez les signaux supplémentaires.
- Pour annoter des évaluations, consultez Annoter des évaluations avec des événements de transaction.