Skip to main contentSkip to footer

Hooks y API para desarrolladores

Acciones y filtros estables para webhooks, integraciones SIEM y código propio, la comprobación de formularios para tus propios formularios, las rutas REST de la 2FA, los shortcodes y las tablas de la base de datos. Todo lo de esta página pertenece al plugin gratuito, salvo que una línea diga lo contrario.

Acciones

  • reportedip_hive_threshold_exceeded( $ip, $event_type, $details ): una vez por cada detección confirmada de un sensor, sean cuales sean los ajustes de bloqueo y de reporte. El sitio para un SIEM.
  • reportedip_hive_ip_blocked( $ip, $reason, $blocked_until ): se bloqueó una dirección; $blocked_until es una fecha y hora UTC o null para un bloqueo permanente.
  • reportedip_hive_ip_unblocked( $ip ): se levantó un bloqueo.
  • reportedip_hive_report_queued( $ip, $category_ids, $report_type ): un reporte entró en la cola, tras las comprobaciones de espera y de duplicados; IDs de categoría separados por comas, negative o positive.
  • reportedip_hive_access_denied( $ip, $context ): justo antes de la página de bloqueo 403. Los rechazos de la protección previa a WordPress terminan antes y no llegan aquí.
  • reportedip_hive_2fa_verified( $user_id, $method, $context ): se superó un segundo factor, en wp-login y en la ruta REST. El wp_login del núcleo también se dispara ahí.
  • reportedip_hive_2fa_method_enabled( $user_id, $method ): un método 2FA se activó para un usuario.
  • reportedip_hive_mode_changed( $old, $new ) y reportedip_hive_tier_changed( $old, $new ): cambió el modo de funcionamiento o el plan.
add_action( 'reportedip_hive_threshold_exceeded', function ( $ip, $event_type, $details ) {
    wp_remote_post( 'https://siem.example.com/ingest', array(
        'body' => wp_json_encode( compact( 'ip', 'event_type', 'details' ) ),
    ) );
}, 10, 3 );

Filtros

  • reportedip_hive_rest_bypass_routes( $routes ): prefijos REST que omite el sensor de ráfagas, por ejemplo un plugin de consentimiento propio.
  • reportedip_hive_rest_sensitive_routes( $routes ): rutas REST que el sensor de ráfagas vigila más de cerca.
  • reportedip_hive_scan_paths( $paths ) y reportedip_hive_decoy_paths( $paths ): amplían las listas de rutas de sondeo y rutas cebo.
  • reportedip_hive_waf_bypass_routes( $routes ): rutas REST que omite el motor, comparadas como prefijo anclado de la ruta resuelta. Para un solo falso positivo, mejor una excepción en la administración.
  • reportedip_hive_bot_allowlist_patterns( $patterns ): patrones de user agent de rastreadores que se verifican en lugar de tratarse como escáneres.
  • reportedip_hive_event_category_map( $map ): con qué categoría comunitaria se reporta un tipo de evento.
  • reportedip_hive_reputation_block_hours( 24 ): duración del bloqueo local tras un acierto de reputación.
  • reportedip_hive_reputation_threshold_floor( 25 ): eleva el mínimo por debajo del nivel de protección; no se puede bajar.
  • reportedip_hive_blocked_page_strings( $strings, $context ): los textos de la página de bloqueo (doc_title, title, message, reason).
  • reportedip_hive_external_url( $url, $context ): sustituye las direcciones de reportedip.com que enlaza el plugin, como la ficha de la IP o el feed de noticias.
  • reportedip_hive_mail_provider( $provider ): tu propio proveedor de correo, que implementa interface-mail-provider.php.
  • reportedip_2fa_bypass( false, $user ): omite el segundo factor para un usuario; el step-up adaptativo también lo respeta.
  • reportedip_hive_webauthn_rp_id, reportedip_hive_webauthn_allowed_origins, reportedip_hive_webauthn_user_verification: relying party, orígenes y verificación de usuario de las passkeys.
  • reportedip_hive_form_proof_adapters y reportedip_hive_reputation_form_surfaces: los formularios que cubren la comprobación de formularios y la comprobación comunitaria.
  • reportedip_hive_tor_block_hours( 24 ): duración de un bloqueo de Tor, complemento Pro.

La comprobación de formularios para tus propios formularios

Un formulario de contacto, de reservas o de cualquier plugin puede usar la comprobación invisible en lugar de un CAPTCHA. Registra el formulario como superficie, imprime el campo donde se muestra el formulario y pide el veredicto donde se valida:

add_filter( 'reportedip_hive_form_proof_adapters', function ( $surfaces ) {
    $surfaces[] = 'my_form';
    return $surfaces;
} );

// Inside the <form> element:
ReportedIP_Hive_Form_Proof::field( 'my_form' );

// When the form is submitted:
if ( ! ReportedIP_Hive_Form_Proof::passes( 'my_form' ) ) {
    // Refuse and tell the sender why.
}

passes( $surface, $strict = true ) rechaza en modo estricto un envío sin el campo; pasa false mientras todavía se puedan servir páginas de una caché antigua. check( $surface ) devuelve el propio veredicto. La página no lleva nada específico de la solicitud, así que las cachés de página siguen funcionando.

Rutas REST de la 2FA

Para apps y front-ends headless, namespace reportedip-hive/v1:

  • POST /2fa/challenge: nombre de usuario y contraseña; responde con un token de desafío y los métodos del usuario. 20 solicitudes cada 5 minutos por dirección.
  • POST /2fa/verify: token, método y código; establece la cookie de autenticación. 30 solicitudes cada 5 minutos por dirección.
  • GET /2fa/methods: los métodos activos del usuario con sesión iniciada.

El complemento Pro añade una ruta para las tareas de la prueba de cálculo y las rutas firmadas de la gestión de flota; ninguna está pensada para llamarse desde tu propio código.

Shortcodes

Cada shortcode muestra el mismo componente web <rip-hive-banner> con cifras de una caché de seis horas.

  • [reportedip_badge]: insignia pequeña, tono protect.
  • [reportedip_stat]: una sola cifra, tono trust.
  • [reportedip_banner]: banner ancho, tono community.
  • [reportedip_shield]: escudo, tono protect.

Atributos: stat (attacks_30d, attacks_total, blocked_active, whitelist_active, logins_30d, spam_30d, api_reports_30d, reports_total), tone (protect, trust, community, contributor), color, background, label, intro. El generador de banners de la página Community, pestaña Badges, escribe el shortcode por ti.

Tablas de la base de datos

El plugin gratuito crea ocho tablas con el prefijo {prefix}reportedip_hive_, en una red bajo el prefijo base, así que cada decisión se aplica a toda la red. Versión de esquema 25; cada actualización migra paso a paso. Todas las horas están en UTC.

  • logs: eventos de seguridad con detalles, gravedad y sitio.
  • whitelist: direcciones y rangos de confianza, opcionalmente con caducidad.
  • blocked: bloqueos activos (manual, automático, reputación, grupo) con su fin.
  • attempts: contadores por dirección y tipo de intento.
  • api_queue: reportes a la espera de la comunidad, con reintentos.
  • stats: totales diarios para los gráficos.
  • trusted_devices: tokens de dispositivos 2FA como hashes SHA-256.
  • waf_exceptions: las excepciones del cortafuegos.

El complemento Pro añade audit_log (registro de auditoría) y group_entries (lista del grupo).

Constantes

  • REPORTEDIP_HIVE_DISABLE_HIDE_LOGIN: desactiva Hide Login desde wp-config.php cuando ya no llegas a la página de inicio de sesión.
  • REPORTEDIP_HIVE_DISABLE_FORM_PROOF: desactiva por completo la comprobación de formularios.

Crear un complemento

El plugin gratuito publica una API de extensión: la acción reportedip_hive_loaded cuando está listo, reportedip_hive_uninstall al eliminarlo, y filtros para ajustes, secciones, tablas, tareas programadas y la lista de funciones. El complemento Pro está construido solo sobre ella. El código fuente del plugin y su changelog están en GitHub.

Última actualización: · Mantenido por el equipo de ReportedIP

Security Focused
Conforme al RGPD
Made in Germany
Volver a la documentación