Cette page explique comment protéger efficacement les transactions de paiement contre les attaques, telles que le carding, la fraude aux instruments volés et la fraude au paiement par piratage de compte, à l'aide de reCAPTCHA Fraud Prevention.
reCAPTCHA Fraud Prevention vous aide à protéger vos 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 un litige ou un remboursement en cas d'acceptation.
Dans le cadre de ces modèles, reCAPTCHA Fraud Prevention examine les signaux de transaction pour détecter les fraudes. Par exemple, une série de tentatives d'achat à bas prix peut indiquer une attaque par carding. 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, vous devez suivre les étapes suivantes :
Activez la prévention des fraudes reCAPTCHA pour votre projet Google Cloud .
Choisissez l'intégration du frontend pour intégrer automatiquement les signaux de l'appareil frontend, ou l'intégration à l'aide de l'API uniquement si vous préférez ne pas effectuer l'intégration dans le frontend.
Lorsque le code JavaScript est exécuté, reCAPTCHA génère un jeton reCAPTCHA unique pour chaque session utilisateur et collecte des données comportementales sur l'utilisateur afin de l'évaluer.
L'intégration à l'API uniquement renvoie un verdict en utilisant uniquement les données de transaction requises et ne nécessite pas ce jeton.
Envoyez une requête d'API
create assessmentdepuis votre backend avec les données de transaction, en utilisant l'intégration frontend ou l'intégration API uniquement choisie précédemment.Dans la réponse à la requête d'API
create assessment, reCAPTCHA fournit un score pour le risque de transaction et des raisons d'explication supplémentaires (par exemple,HIGH_TRANSACTION_VELOCITY), le cas échéant.Déterminez la prochaine action pour vos utilisateurs en fonction des scores.
Vous pouvez choisir d'autoriser la transaction, de demander une validation supplémentaire, de l'envoyer pour examen manuel ou de la bloquer.
Avant de commencer
Si vous débutez avec reCAPTCHA, procédez comme suit :
Si vous prévoyez une intégration Frontend, vérifiez que votre environnement accepte les jetons de plus de 8 ko, car la protection contre la fraude reCAPTCHA peut utiliser des jetons plus volumineux.
Activer la prévention des fraudes reCAPTCHA
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 projet, puis sélectionnez votre projet.
Cliquez sur Paramètres.
Dans le volet Prévention des fraudes, cliquez sur Configurer.
Cliquez sur le bouton Activer, puis sur Enregistrer.
Intégration à l'interface : installer reCAPTCHA sur votre site Web
L'utilisation de la prévention de la fraude avec une intégration frontend reCAPTCHA permet de se protéger contre les attaques par carding et les transactions frauduleuses. Pour commencer à détecter les 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 consulte son panier, sélectionne son mode de paiement et finalise l'achat.
Une fois l'utilisateur sélectionné à 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 Installer des clés basées sur des scores.
L'exemple suivant montre comment intégrer une clé basée sur un score à 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>Intégration du frontend : créer des évaluations avec des données de transaction
Pour recevoir des verdicts sur la fraude au paiement, créez des évaluations avec Transaction Data en utilisant les champs supplémentaires de la méthode projects.assessments.create.
L'intégration nécessite au minimum les champs payment_method, card_bin et card_last_four. Pour améliorer la qualité de la détection, nous vous recommandons d'ajouter des champs facultatifs tels que email, phone_number et billing_address.
Pour recevoir une évaluation de la prévention de la fraude avec intégration du frontend, vous devez disposer de l'un des éléments suivants :
- Données de transaction
cardBinetcardLastFour - Utilisateur
accountId - Utilisateur
email - Utilisateur
phoneNumber
{ "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 également 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. Vérifiez 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.
Intégration à l'aide de l'API uniquement : créer des évaluations avec des données de transaction
Pour recevoir des verdicts sur la fraude au paiement, créez des évaluations avec Transaction Data en utilisant les champs supplémentaires de la méthode projects.assessments.create.
Étant donné que l'intégration reCAPTCHA avec API uniquement produit une évaluation de la prévention de la fraude en utilisant uniquement les données de transaction que vous fournissez, vous devez au minimum fournir les éléments suivants :
- Adresse de facturation
regionCodeetpostalCode. - Données de transaction
paymentMethod - Choisissez l'une des options suivantes :
- Données de transaction
cardBinetcardLastFour - Utilisateur
accountId - Utilisateur
email - Utilisateur
phoneNumber
- Données de transaction
{ "event": { "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": { "account_id": "abcde12345", "email": "someEmailAddress@example.com", "phone_number": "+18005550175", }, "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 de fournir autant d'entrées que possible et d'envoyer également des signaux supplémentaires.
Interpréter les évaluations
Une fois que vous commencez à 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": {.... .... } ..... .... .... "fraudPreventionAssessment": { "transactionRisk": 0.9, "riskReasons": HIGH_TRANSACTION_VELOCITY } }
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 entreprenez 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 transaction à un examen manuel ou au refus direct des transactions probablement frauduleuses.
Vous pouvez également utiliser le score dans vos propres workflows de lutte contre la fraude ou dans des règles avec votre système existant. reCAPTCHA examine des signaux uniques et dispose d'une visibilité unique sur les comportements sur Internet. Vous pouvez donc vous attendre à une valeur incrémentielle, même avec un moteur de détection des fraudes déjà mature.
Chaque tranche de score est calibrée sur un taux maximal de faux positifs, qui représente la proportion maximale d'utilisateurs légitimes susceptibles de rencontrer des difficultés supplémentaires. Les seuils que vous devez sélectionner dépendent des besoins de votre entreprise. Voici quelques exemples d'utilisation du score transactionRisk :
| Tolérance au risque | Seuil recommandé | Taux de faux positifs maximal | Exemple d'utilisation |
|---|---|---|---|
| Faible | 0,5 | 5 % | Exiger une validation supplémentaire, comme l'A2F, avant d'accepter la transaction |
| Moyenne | 0,7 | 1 % | Envoyer la transaction pour examen manuel |
| Élevée | 0,9 | 0,1 % | Refuser la transaction |
Étapes suivantes
- Pour améliorer la qualité de la détection des fraudes, découvrez les signaux supplémentaires.
- Pour annoter des évaluations, consultez Annoter des évaluations avec des événements de transaction.