Resumen de IA
WPForms 2.0 introdujo 3 capas de protección automáticas que detectan y bloquean ataques de prueba de tarjetas contra la integración de Stripe incorporada: detección de picos de bajo importe, un límite de tasa en todo el sitio y telemetría de sesión de Stripe Radar. Las pruebas de tarjetas (también llamadas 'carding') son un ataque en el que los scripts prueban números de tarjetas robadas con pequeños cargos para encontrar los que funcionan.
Las protecciones se ejecutan automáticamente con valores predeterminados ajustados y no tienen una interfaz de usuario de configuración. Cada umbral y comportamiento se controla a través de los filtros de PHP documentados en esta página. Si en su lugar busca instrucciones generales de configuración de Stripe, consulte nuestra documentación de Stripe.
Requisitos:
- WPForms 2.0 o posterior. Las protecciones se aplican a los pagos de Stripe tanto en las versiones gratuitas como en las de pago.
- Por defecto, las protecciones solo se ejecutan en pagos en modo 'live'. Los pagos en modo de prueba de Stripe las omiten a menos que opte por participar con el filtro
wpforms_stripe_run_protections_in_test_mode.
Cómo funcionan las protecciones
- Detección de picos de bajo importe: Cuenta los intentos de pago de Stripe en o por debajo de un importe umbral (por defecto 3,00 $) en todo el sitio en una ventana deslizante. Cuando el recuento supera el límite, todos los pagos de Stripe de bajo importe se bloquean durante un período determinado. Los pagos por encima del umbral siguen procesándose. WPForms envía 1 correo electrónico al administrador del sitio y muestra un aviso de administrador que se puede descartar por cada período de bloqueo.
- Límite de tasa global: Cuenta los intentos fallidos de tarjeta (errores
CardExceptionde Stripe) en todos los visitantes de todo el sitio. Cuando los fallos superan el límite, todos los pagos de Stripe se bloquean hasta que expire la ventana. Esto amplía el límite de tasa por IP que se incluye con WPForms desde la versión 1.8.2, y los 2 límites funcionan de forma independiente. - Sesiones de Stripe Radar: Crea una sesión de Radar cuando se carga un formulario de Stripe y la adjunta al método de pago. Esto proporciona señales de comportamiento al motor de fraude de Stripe para que su puntuación de riesgo sea más precisa. Es telemetría pasiva sin umbrales ni bloqueos por parte de WPForms.
Cuando un pago es bloqueado por la detección de picos, el cliente ve "El procesamiento del pago no está disponible temporalmente. Por favor, inténtelo de nuevo más tarde o póngase en contacto con el propietario del sitio". Cuando el límite de tasa global bloquea los pagos, el cliente ve "No se puede procesar el pago, inténtelo de nuevo más tarde". Los bloqueos se levantan automáticamente cuando expira su duración.
Filtros de detección de picos de bajo importe
| Filtro | Tipo | Predeterminado | Descripción |
|---|---|---|---|
wpforms_stripe_low_amount_surge_enabled | bool | verdadero | Activa o desactiva la detección de picos. |
wpforms_stripe_low_amount_threshold | flotante | 3.00 | Umbral de importe. Los pagos en o por debajo de este importe cuentan para el pico y se bloquean mientras un bloqueo está activo. |
wpforms_stripe_low_amount_surge_count | int | 10 | Número de intentos de bajo importe dentro de la ventana que activan un bloqueo. |
wpforms_stripe_low_amount_surge_window | int | 120 | Duración de la ventana deslizante en segundos. |
wpforms_stripe_low_amount_block_duration | int | HORA_EN_SEGUNDOS | Cuánto dura el bloqueo, en segundos. |
wpforms_stripe_low_amount_surge_email_to | cadena | get_option( 'admin_email' ) | Destinatario del correo electrónico de alerta de prueba de tarjetas. |
Por ejemplo, un sitio de donaciones concurrido que recibe legítimamente muchos pagos pequeños puede querer un recuento de ráfagas (surge count) más alto y un bloque más corto.
// 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: El estado de la ráfaga se almacena en las transients wpforms_stripe_low_amount_counter, wpforms_stripe_low_amount_block y wpforms_stripe_low_amount_notified. Si cambia estos valores de filtro mientras un bloque está activo, elimine las transients para que los nuevos valores surtan efecto inmediatamente.
Filtros de Límite de Tasa Global
| Filtro | Tipo | Predeterminado | Descripción |
|---|---|---|---|
wpforms_stripe_rate_limit_global_enabled | bool | verdadero | Activa o desactiva el límite de tasa en todo el sitio. |
wpforms_stripe_rate_limit_global_allowed_attempts | int | 50 | Número de intentos fallidos de tarjeta en todo el sitio antes de que se bloqueen todos los pagos de Stripe. |
wpforms_stripe_rate_limit_global_expires_in | int | HORA_EN_SEGUNDOS | Duración de la ventana de conteo y del bloque, en segundos. |
El límite de tasa preexistente por IP mantiene sus propios filtros y no se ve afectado por el ámbito global: wpforms_stripe_rate_limit_allowed_attempts (valor predeterminado 3) y wpforms_stripe_rate_limit_expires_in (valor predeterminado 6 horas).
Por ejemplo, para aumentar el límite global en una tienda de alto tráfico:
// 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 Sesión de Stripe Radar
Las sesiones de Radar envían telemetría de comportamiento desde la página de pago a Stripe Radar, el motor de prevención de fraudes de Stripe. WPForms crea la sesión al cargar el formulario tanto en los flujos de Card Element como de Payment Element y la adjunta al método de pago que crea. La llamada es un esfuerzo de "best-effort": si la API de Radar no está disponible, el pago procede normalmente sin una sesión.
| Filtro | Tipo | Predeterminado | Descripción |
|---|---|---|---|
wpforms_stripe_radar_session_enabled | bool | verdadero | Activa o desactiva la creación de sesiones de Radar. |
// Disable Radar session telemetry.
add_filter( 'wpforms_stripe_radar_session_enabled', '__return_false' );
Nota: Stripe no adjunta sesiones de Radar a los pagos completados a través de Stripe Link. Esta es una limitación de la plataforma de Stripe, no una configuración de WPForms.
Prueba de las Protecciones en Modo de Prueba de Stripe
Las protecciones omiten el modo de prueba de Stripe por defecto para que los flujos de trabajo de desarrollo normales no se vean afectados por falsos positivos. Para ejercitarlas en modo de prueba, opte por ellas y reduzca los umbrales para que los bloqueos se activen rápidamente:
// 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;
} );
Con esos filtros activos, envíe 3 pagos de 2 $ o menos usando una tarjeta de prueba de Stripe. El tercer intento se bloquea, se envía el correo electrónico de alerta y aparece el aviso de administrador. Un pago superior al umbral todavía se procesa durante el bloqueo. Consulte nuestra guía para probar pagos de Stripe para configurar el modo de prueba y las tarjetas de prueba.
Si un bloqueo de una prueba anterior todavía está activo después de cambiar los valores del filtro, borre el estado almacenado con 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
- Cómo instalar y usar el complemento Stripe con WPForms
- Probar pagos de Stripe
- Una Guía Completa de Tipos de Campos de Pago en WPForms (consulte la opción Precio Mínimo, la defensa recomendada que hace que las pruebas de tarjetas de bajo importe no sean rentables)
- Documentación de Stripe Radar