Esta página descreve como proteger eficazmente as transações de pagamento contra ataques, como roubo de dados de cartões, fraude de instrumentos roubados e fraude de pagamento de roubo de conta, através da prevenção de fraudes do reCAPTCHA.
A prevenção de fraudes do reCAPTCHA ajuda a proteger as transações de pagamento através da identificação de ataques manuais direcionados e tentativas de fraudes em grande escala. Forma automaticamente modelos de comportamento e transações para identificar eventos que são provavelmente fraudulentos e podem resultar num diferendo ou numa anulação de débito se forem aceites.
Como parte destes modelos, a prevenção de fraudes do reCAPTCHA examina os sinais de transação para permitir a deteção de fraudes. Por exemplo, uma série de tentativas de compra com preços baixos pode indicar um ataque de roubo de dados de cartões. Na resposta, recebe classificações de risco para diferentes tipos de fraude, que pode usar para enviar a transação para uma revisão manual ou bloquear diretamente transações suficientemente suspeitas.
Para configurar a prevenção de fraudes do reCAPTCHA, tem de concluir os seguintes passos:
Ative a prevenção de fraudes do reCAPTCHA no seu Google Cloud projeto.
-
Quando o JavaScript é executado, o reCAPTCHA gera um token do reCAPTCHA exclusivo para cada sessão do utilizador e recolhe dados comportamentais do utilizador para o avaliar.
-
Na resposta do pedido da API de criação de avaliações, 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 para os seus utilizadores com base nas pontuações.
Pode optar por permitir a transação, pedir validação adicional, encaminhar para uma revisão manual ou bloquear a transação.
Antes de começar
Se for a primeira vez que usa o reCAPTCHA, faça o seguinte:
Certifique-se de que o seu ambiente suporta tokens superiores a 8 kB, uma vez que a prevenção de fraudes do reCAPTCHA pode usar tokens maiores.
Ative a prevenção contra fraude do reCAPTCHA
Na Google Cloud consola, aceda à página do reCAPTCHA.
Verifique se o nome do seu projeto aparece no seletor de recursos.
Se não vir o nome do seu projeto, clique no seletor de recursos e, em seguida, selecione o seu projeto.
Clique em
Definições.No painel Prevenção de fraudes, clique em Configurar.
Clique no botão para ativar e clique em Guardar.
Instale o reCAPTCHA no frontend de pagamento
Para começar a detetar ataques, instale uma chave do reCAPTCHA baseado em pontuação em cada página do fluxo do utilizador de pagamento. Isto inclui a interface onde um utilizador revê o carrinho, seleciona o método de pagamento e conclui a compra.
Depois de o utilizador fazer a sua seleção em cada passo, chame grecaptcha.enterprise.execute()
para gerar um token. Para saber como instalar chaves baseadas em pontuações e chamar
execute()
, consulte o artigo Instale chaves baseadas em pontuações.
O exemplo seguinte mostra como integrar uma chave baseada em pontuação num 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>
Pode experimentar este 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>
Crie avaliações com dados de transações
Para ativar os veredictos de fraude de pagamentos, crie avaliações com dados de transações através do método projects.assessments.create.
A integração mais simples inclui transaction_id
, payment_method
,
card_bin
e value
. Para melhorar a qualidade da deteção, recomendamos que
adicione 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 envie sinais adicionais.
Para saber como criar avaliações, consulte o artigo Crie uma avaliação para o seu Website. A prevenção de fraudes do reCAPTCHA pode usar tokens maiores, por isso, certifique-se de que o pedido é enviado num pedido POST em vez de GET e no corpo, não num cabeçalho.
Interprete as avaliações
Depois de começar a enviar os dados de transações, recebe avaliações como uma resposta JSON com o componente fraudPreventionAssessment
em riskAnalysis
.
O exemplo seguinte é uma resposta de exemplo:
{ "event": {.... .... } ..... .... .... "riskAnalysis": { "score": "0.5" "reasons": SUSPECTED_CARDING } "fraudPreventionAssessment": { "transactionRisk": 0.9, } }
A resposta que recebe inclui uma classificação e códigos de motivos, sempre que aplicável. Quanto mais elevada for a pontuação, maior é a probabilidade de a transação ser fraudulenta e arriscada; quanto mais baixa for 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 maior probabilidade de ser fraudulenta e arriscada, e uma pontuação de 0,1 indica que a transação tem maior probabilidade de ser legítima.
É responsável pelas ações que tomar com base na avaliação.
Para a integração mais simples, pode definir limites em transactionRisk
para contribuir para a sua decisão. Por exemplo, pode contribuir para o envio para uma revisão manual ou para a rejeição direta de transações provavelmente fraudulentas.
Também pode usar a pontuação nos seus próprios fluxos de trabalho de fraude ou como parte de regras com o seu sistema existente. Uma vez que o reCAPTCHA examina sinais únicos e tem uma visibilidade única do comportamento na Internet, pode esperar um valor incremental, mesmo com um motor de deteção de fraudes já desenvolvido.
Cada grupo de pontuação é calibrado para uma taxa de falsos positivos máxima, que representa a proporção máxima de utilizadores legítimos que podem ter atrito adicional. Os limites que tem de selecionar dependem das necessidades da sua empresa. Seguem-se alguns exemplos de como pode usar a pontuação transactionRisk
:
Tolerância ao risco | Limite recomendado | Taxa de falsos positivos máxima | Exemplo de utilização |
---|---|---|---|
Baixo | 0,5 | 5% | Exigir validação adicional, como a 2FA, antes de aceitar a transação |
Médio | 0,7 | 1% | Envie a transação para revisão manual |
Alto | 0,9 | 0,1% | Rejeitar transação |
O que se segue?
- Para melhorar a qualidade da deteção de fraudes, saiba mais acerca de sinais adicionais.
- Para anotar avaliações, consulte o artigo Anote avaliações com eventos de transação.