Nesta página, descrevemos como proteger as transações de pagamento contra ataques, como fraude de cartão, roubo de instrumentos e invasão de contas, usando a Prevenção de fraudes do reCAPTCHA.
A prevenção de fraudes do reCAPTCHA ajuda a proteger transações de pagamento identificando ataques manuais direcionados e tentativas de fraude em larga escala. Ele treina automaticamente modelos de comportamento e transação para identificar eventos que provavelmente são fraudulentos e podem resultar em uma disputa ou estorno se aceitos.
Como parte desses modelos, a prevenção contra fraudes do reCAPTCHA examina os indicadores de transação para permitir a detecção de fraudes. Por exemplo, uma série de tentativas de compra com preços baixos pode indicar um ataque de falsificação de cartões. Na resposta, você recebe pontuações de risco para diferentes tipos de fraude, que podem ser usadas para enviar a transação a uma análise manual ou bloquear diretamente transações suspeitas.
Para configurar a prevenção contra fraudes do reCAPTCHA, siga estas etapas:
-
Quando o JavaScript é executado, o reCAPTCHA gera um token reCAPTCHA exclusivo para cada sessão de usuário e coleta dados comportamentais para avaliar o usuário.
-
Na resposta da solicitação da API de criação de avaliação, o reCAPTCHA fornece uma pontuação para o risco de transação e um código de motivo adicional (por exemplo,
suspected_carding
), se aplicável. Determine a próxima ação dos usuários com base nas pontuações.
Você pode permitir a transação, pedir uma verificação adicional, encaminhar para uma análise manual ou bloquear a transação.
Antes de começar
Se você não conhece o reCAPTCHA, faça o seguinte:
Ative a prevenção contra fraudes do reCAPTCHA no seu projeto do Google Cloud:
No console do Google Cloud, acesse a página reCAPTCHA.
Verifique se o nome do projeto aparece no seletor de recursos.
Se você não encontrar o nome do projeto, clique no seletor de recursos e selecione o projeto.
Clique em
Configurações.No painel Prevenção contra fraudes, clique em Configurar.
Clique no botão Ativar e em Salvar.
Verifique se o ambiente oferece suporte a tokens maiores que 8 KB, porque a prevenção contra fraudes do reCAPTCHA pode usar tokens maiores.
Instalar o reCAPTCHA no front-end de pagamento
Para começar a detectar ataques, instale uma chave reCAPTCHA com base em pontuação em cada página do seu fluxo de usuário para pagamentos. Isso inclui a interface em que o usuário analisa o
carrinho, seleciona a forma de pagamento e finaliza a compra. Depois que o usuário
escolher uma opção em cada etapa, chame grecaptcha.enterprise.execute()
para
gerar um token. Para saber como instalar chaves baseadas em pontuação e chamar
execute()
, consulte Instalar chaves baseadas em pontuação.
O exemplo a seguir mostra como integrar uma chave baseada em pontuação a um evento de transação de cartão de crédito:
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>
Você pode experimentar esse código no JSFiddle clicando no ícone <>
no canto superior direito da janela de código.
<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>
Criar avaliações com dados de transações
Para ativar os vereditos de fraude de pagamento, crie avaliações com dados de transação usando os campos adicionais no método projects.assessments.create.
A integração mais simples inclui transaction_id
, payment_method
,
card_bin
e value
. Para melhorar a qualidade da detecção, recomendamos
adicionar campos opcionais, como email
e 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" } } } }
Para melhorar a qualidade das pontuações, recomendamos que você envie outros indicadores.
Para saber como criar avaliações, consulte Criar uma avaliação para seu site. A prevenção de fraude do reCAPTCHA pode usar tokens maiores. Portanto, verifique se a solicitação é enviada em uma solicitação POST, e não GET, e no corpo, não em um cabeçalho.
Interpretar avaliações
Depois de começar a enviar os dados da transação, você vai receber avaliações como uma
resposta JSON com o componente fraudPreventionAssessment
em riskAnalysis
.
Confira a seguir um exemplo de resposta:
{ "event": {.... .... } ..... .... .... "riskAnalysis": { "score": "0.5" "reasons": SUSPECTED_CARDING } "fraudPreventionAssessment": { "transactionRisk": 0.9, } }
A resposta que você receber vai incluir uma pontuação e códigos de motivo, quando aplicável. Quanto maior a pontuação, maior a probabilidade de a transação ser fraudulenta e arriscada. Quanto menor a pontuação, maior a probabilidade de a transação ser legítima. Por exemplo, uma pontuação de 0,9 indica que a transação tem mais probabilidade de ser fraudulenta e arriscada, e uma pontuação de 0,1 indica que a transação é mais provável que seja legítima.
Você é responsável pelas ações que tomar com base na avaliação.
Para a integração mais simples, defina limites em transactionRisk
para contribuir com sua decisão. Por exemplo, ela pode contribuir para o envio para uma
revisão manual ou a rejeição direta de transações provavelmente fraudulentas.
Você também pode usar a pontuação nos seus próprios fluxos de trabalho de fraude ou como parte das regras do seu sistema atual. Como o reCAPTCHA examina indicadores exclusivos
e tem uma visibilidade única do comportamento na Internet, é possível esperar
um valor incremental mesmo com um mecanismo de detecção de fraudes já maduro.
A seguir
- Para melhorar a qualidade da detecção de fraudes, saiba mais sobre outros indicadores.
- Para anotar avaliações, consulte Anotar avaliações com eventos de transação.