Resumo de IA
O WPForms 2.0 introduziu 3 camadas automáticas de proteção que detetam e bloqueiam ataques de teste de cartões contra a integração Stripe incorporada: deteção de picos de baixo valor, um limite de taxa para todo o site e telemetria de sessão Stripe Radar. Testes de cartões (também chamados de carding) são um ataque onde scripts testam números de cartões roubados com pequenas cobranças para descobrir quais funcionam.
As proteções funcionam automaticamente com predefinições ajustadas e não têm interface de utilizador para configurações. Cada limite e comportamento é controlado através dos filtros PHP documentados nesta página. Se estiver à procura de instruções gerais de configuração Stripe, consulte a nossa documentação Stripe.
Requisitos:
- WPForms 2.0 ou posterior. As proteções aplicam-se a pagamentos Stripe em ambas as versões, gratuita e paga.
- Por defeito, as proteções só funcionam em pagamentos em modo real. Pagamentos em modo de teste Stripe ignoram-nas, a menos que opte por ativá-las com o filtro
wpforms_stripe_run_protections_in_test_mode.
Como Funcionam as Proteções
- Deteção de Picos de Baixo Valor: Conta as tentativas de pagamento Stripe em ou abaixo de um valor limite (padrão $3.00) em todo o site numa janela deslizante. Quando a contagem excede o limite, todos os pagamentos Stripe de baixo valor são bloqueados por um determinado período. Pagamentos acima do limite continuam a ser processados. O WPForms envia 1 e-mail ao administrador do site e mostra um aviso de administração dispensável por período de bloqueio.
- Limite de Taxa Global: Conta as tentativas de cartão falhadas (erros
CardExceptionda Stripe) em todos os visitantes em todo o site. Quando as falhas excedem o limite, todos os pagamentos Stripe são bloqueados até que a janela expire. Isto estende o limite de taxa por IP que tem sido incluído no WPForms desde a versão 1.8.2, e os 2 limites funcionam independentemente. - Sessões Stripe Radar: Cria uma sessão Radar quando um formulário Stripe carrega e anexa-a ao método de pagamento. Isto fornece sinais comportamentais ao próprio motor de fraude da Stripe para que a sua pontuação de risco se torne mais precisa. É telemetria passiva sem limites e sem bloqueios no lado do WPForms.
Quando um pagamento é bloqueado pela deteção de picos, o cliente vê "O processamento do pagamento está temporariamente indisponível. Por favor, tente novamente mais tarde ou contacte o proprietário do site." Quando o limite de taxa global bloqueia pagamentos, o cliente vê "Não foi possível processar o pagamento, por favor, tente novamente mais tarde." Os bloqueios são levantados automaticamente quando a sua duração expira.
Filtros de Deteção de Picos de Baixo Valor
| Filtro | Tipo | Padrão | Descrição |
|---|---|---|---|
wpforms_stripe_low_amount_surge_enabled | booleano | verdadeiro | Ativa ou desativa a deteção de picos. |
wpforms_stripe_low_amount_threshold | float | 3.00 | Limite superior. Pagamentos neste valor ou abaixo dele contam para o pico e são bloqueados enquanto um bloqueio está ativo. |
wpforms_stripe_low_amount_surge_count | int | 10 | Número de tentativas de baixo valor dentro da janela que acionam um bloqueio. |
wpforms_stripe_low_amount_surge_window | int | 120 | Duração da janela deslizante em segundos. |
wpforms_stripe_low_amount_block_duration | int | HORA_EM_SEGUNDOS | Duração do bloqueio, em segundos. |
wpforms_stripe_low_amount_surge_email_to | string | get_option( 'admin_email' ) | Destinatário do e-mail de alerta de teste de cartão. |
Por exemplo, um site de doações movimentado que recebe legitimamente muitos pagamentos pequenos pode querer uma contagem de picos mais alta e um bloqueio mais curto:
// Allow 30 low-amount attempts per window before blocking.
add_filter( 'wpforms_stripe_low_amount_surge_count', function () {
return 30;
} );
// Shorten the block from 1 hour to 15 minutes.
add_filter( 'wpforms_stripe_low_amount_block_duration', function () {
return 15 * MINUTE_IN_SECONDS;
} );
// Send the alert email to a dedicated inbox.
add_filter( 'wpforms_stripe_low_amount_surge_email_to', function () {
return '[email protected]';
} );
Nota: O estado do pico é armazenado nos transientes wpforms_stripe_low_amount_counter, wpforms_stripe_low_amount_block e wpforms_stripe_low_amount_notified. Se alterar estes valores de filtro enquanto um bloqueio estiver ativo, elimine os transientes para que os novos valores entrem em vigor imediatamente.
Filtros Globais de Taxa Máxima
| Filtro | Tipo | Padrão | Descrição |
|---|---|---|---|
wpforms_stripe_rate_limit_global_enabled | booleano | verdadeiro | Ativa ou desativa o limite de taxa em todo o site. |
wpforms_stripe_rate_limit_global_allowed_attempts | int | 50 | Número de tentativas falhadas de cartão em todo o site antes de todos os pagamentos Stripe serem bloqueados. |
wpforms_stripe_rate_limit_global_expires_in | int | HORA_EM_SEGUNDOS | Duração da janela de contagem e do bloqueio, em segundos. |
O limite de taxa por IP pré-existente mantém os seus próprios filtros e não é afetado pelo âmbito global: wpforms_stripe_rate_limit_allowed_attempts (padrão 3) e wpforms_stripe_rate_limit_expires_in (padrão 6 horas).
Por exemplo, para aumentar o limite global numa loja com tráfego elevado:
// Allow 200 failed card attempts per hour site-wide before blocking.
add_filter( 'wpforms_stripe_rate_limit_global_allowed_attempts', function () {
return 200;
} );
Filtro de Sessão Stripe Radar
As sessões Radar enviam telemetria comportamental da página de pagamento para o Stripe Radar, o motor de prevenção de fraudes da Stripe. O WPForms cria a sessão ao carregar o formulário nos fluxos do Elemento de Cartão e do Elemento de Pagamento e anexa-a ao método de pagamento que cria. A chamada é feita com o melhor esforço: se a API Radar estiver indisponível, o pagamento prossegue normalmente sem uma sessão.
| Filtro | Tipo | Padrão | Descrição |
|---|---|---|---|
wpforms_stripe_radar_session_enabled | booleano | verdadeiro | Ativa ou desativa a criação de sessões Radar. |
// Disable Radar session telemetry.
add_filter( 'wpforms_stripe_radar_session_enabled', '__return_false' );
Nota: A Stripe não anexa sessões Radar a pagamentos concluídos através do Stripe Link. Esta é uma limitação da plataforma Stripe, não uma configuração do WPForms.
Testar as Proteções em Modo de Teste Stripe
As proteções ignoram o modo de teste Stripe por defeito para que os fluxos de trabalho de desenvolvimento normais não sejam afetados por falsos positivos. Para as exercitar em modo de teste, opte por elas e reduza os limiares para que os bloqueios sejam acionados rapidamente:
// Run the protections in Stripe test mode.
add_filter( 'wpforms_stripe_run_protections_in_test_mode', '__return_true' );
// Trigger the surge block on the 3rd low-amount attempt.
add_filter( 'wpforms_stripe_low_amount_surge_count', function () {
return 2;
} );
// Auto-unblock after 30 seconds for fast retries.
add_filter( 'wpforms_stripe_low_amount_block_duration', function () {
return 30;
} );
Com esses filtros ativos, envie 3 pagamentos de 2€ ou menos usando um cartão de teste Stripe. A 3ª tentativa é bloqueada, o email de alerta é enviado e o aviso de administrador aparece. Um pagamento acima do limiar ainda processa durante o bloqueio. Veja o nosso guia para testar pagamentos Stripe para configurar o modo de teste e os cartões de teste.
Se um bloqueio de um teste anterior ainda estiver ativo após alterar os valores do filtro, limpe o estado armazenado com WP-CLI:
wp transient delete wpforms_stripe_low_amount_block
wp transient delete wpforms_stripe_low_amount_counter
wp transient delete wpforms_stripe_low_amount_notified
Relacionado
- Como Instalar e Usar o Addon Stripe com WPForms
- Testar Pagamentos Stripe
- Um Guia Completo sobre Tipos de Campos de Pagamento no WPForms (veja a opção Preço Mínimo, a defesa recomendada que torna os testes de cartão de baixo valor não lucrativos)
- Documentação Stripe Radar