Bloqueo de IP & países, control de visitantes: configuración y ayuda

Inicio rápido

  1. Sube e instala el ZIP de mprvisitorcontrol desde el Gestor de módulos.
  2. Haz clic en Configurar para abrir General Settings, revisa las opciones y guarda.
  3. Abre IP Whitelist y guarda tu IP de confianza para pruebas o de la oficina en IP Address, con una Label.
  4. Inicia sesión con una cuenta de cliente de prueba en la tienda, deja la página abierta para la recogida de datos y después revisa ese cliente en el back office.
  5. Abre Visitor Bans y añade una regla para otra dirección de prueba. Configura Ban Type y Active, e indica una fecha de caducidad para la prueba en Expiry Date.
  6. Desde la dirección de prueba correspondiente, abre una página afectada y confirma la respuesta 403 y el mensaje previsto.
  7. Desactiva la regla de prueba y confirma que se restablece el acceso. Usa el Gestor de módulos para desactivar el módulo si necesitas detener toda la recogida de datos y todos los bloqueos.

Requiere PrestaShop 1.6.1 o posterior y PHP 7.1 o posterior.

Manual de configuración

Instalación y primera configuración

Sigue los pasos de Inicio rápido.

Revisar los ajustes antes de usarlos

Al instalarse, el módulo activa la recogida de datos, el seguimiento de invitados, el bloqueo de visitantes y los paneles en los pedidos. El periodo de conservación inicial es de 90 días. Su acción Configurar abre General Settings.

Guardar General Settings aplica las opciones de recogida de datos, seguimiento de invitados, bloqueo, paneles en pedidos y conservación. Default Ban Message se guarda para cada idioma y se usa cuando una regla coincidente no tiene un mensaje personalizado.

Establece Enable Data Collection o Enable Visitor Banning en No y guarda para detener la función correspondiente. Desactiva el módulo en el Gestor de módulos para detener ambas. Gestiona las entradas individuales de bloqueos y de la lista blanca desde sus pantallas específicas.

Etiqueta del formulario Valor al instalar Comportamiento actual
Enable Data Collection Sí Se recogen las solicitudes del navegador y la información de inicio de sesión y creación de cuentas. Selecciona No y guarda para detener la recogida de datos.
Track Guest Visitors Sí Se incluyen los visitantes que no han iniciado sesión, con su ID de invitado cuando está disponible. Selecciona No y guarda para recoger datos solo de los clientes conectados.
Enable Visitor Banning Sí Las reglas de bloqueo activas se aplican antes de que se carguen las páginas de la tienda. Selecciona No y guarda para detener los bloqueos.
Show Info on Orders Sí El panel de datos de visita del cliente aparece en las páginas de pedidos compatibles de la administración. Selecciona No y guarda para ocultar este panel.
Log Retention (days) 90 Elimina automáticamente los registros más antiguos que el número de días guardado. Introduce un número entero no negativo; 0 conserva los registros indefinidamente.
Default Ban Message Mensaje de restricción en inglés definido para cada idioma Guarda el mensaje de reserva para cada idioma. El mensaje personalizado de una regla coincidente tiene prioridad.

El mensaje en inglés definido al instalar es:

Your access to this website has been restricted. If you believe this is an error, please contact the store administrator.

El seguimiento del sistema operativo, el navegador, la pantalla y la cadena user-agent sin procesar se activa al instalar. El formulario principal para el comerciante no tiene controles separados para estos datos. Cada registro recogido incluye la dirección IP.

Añadir direcciones de confianza

Abre IP Whitelist. Introduce IP Address o CIDR Range y una Label, y guarda. Ejemplos de entradas:

IP Address: 203.0.113.10
Label: Office IP
CIDR Range: 198.51.100.0/24
Label: Agency VPN

Sustituye estas direcciones de documentación por tus direcciones de confianza reales. La coincidencia con la lista blanca se comprueba antes de cada verificación de bloqueo. Una dirección incluida en la lista blanca también evita los bloqueos por país, user-agent y cliente. Evita rangos más amplios de lo que pretendes permitir. Las entradas se comprueban para la tienda actual o para todas las tiendas, según corresponda.

Crear y mantener reglas de bloqueo

Abre Visitor Bans y añade una Ban Rule. Rellena al menos un campo para definir qué visitantes bloquear. Usa un solo criterio por regla si quieres una prueba predecible: si rellenas varios campos, basta con que coincida uno de ellos; no es necesario que se cumplan todas las condiciones.

Campo Valor predeterminado de una regla nueva Cómo usarlo
IP Address Vacío, salvo que esté rellenado previamente Introduce una IP exacta, una dirección IPv4 con comodín como 192.168.1.* o un rango con guion como 192.168.1.1-192.168.1.255.
CIDR Range Vacío Introduce una subred IPv4 como 192.168.1.0/24. No rellenes este campo y IP Address a la vez.
Country Ninguno Selecciona un país para compararlo con el código de país detectado.
User Agent Pattern Vacío Introduce una subcadena de texto sin distinción entre mayúsculas y minúsculas o una expresión regular que empiece y termine con /.
Customer ID 0 Introduce el ID del cliente registrado. Solo se comprueba cuando ese cliente ha iniciado sesión.
Ban Type Full Block - Entire Store Elige el alcance descrito a continuación.
Reason Vacío Nota interna; no se muestra al visitante.
Custom Ban Message Vacío Sustituye el mensaje predeterminado para esta regla. La plantilla muestra este contenido como HTML.
Active Sí Selecciona No para dejar de aplicar la regla.
Expiry Date Vacío Déjalo vacío para una regla permanente o introduce una fecha de caducidad. Las entradas activas caducadas se desactivan al cargar los bloqueos activos.

Para las expresiones regulares de user-agent, usa /(curl|wget|python-requests)/. El mecanismo de coincidencia solo reconoce una expresión regular si su último carácter es /. Un ejemplo que termine en /i se trata como texto sin formato en esta versión. La coincidencia de texto sin formato ya ignora las mayúsculas y minúsculas. El visitante puede modificar las cadenas user-agent, por lo que no permiten establecer su identidad.

Elegir el alcance

Ban Type Valor almacenado Valores de controller de la solicitud afectados
Full Block - Entire Store full Cualquier solicitud del front office que llegue al hook de aplicación de bloqueos
Checkout Only checkout order, orderopc, cart, supercheckout, onepagecheckout, checkout
Login/Authentication Only auth authentication, my-account, identity, registration, password

El bloqueo se ejecuta mediante actionDispatcher para los controladores nativos del front office; las solicitudes a controladores del front office de módulos se omiten. El módulo lee el valor controller de la solicitud para los bloqueos de alcance limitado. Prueba tus rutas del proceso de compra y de la cuenta, especialmente si usas controladores personalizados. Una coincidencia para toda la tienda se comprueba antes que el alcance más limitado. Un cambio de IP, por ejemplo mediante una conexión VPN, puede eludir una regla basada solo en IP cuando la nueva dirección queda fuera de la regla.

Ejemplos

Para una prueba en toda la tienda, introduce la dirección de prueba en IP Address, mantén Ban Type en Full Block - Entire Store, introduce un Reason interno y establece una fecha de caducidad cercana en Expiry Date.

Para una subred bloqueada solo durante el proceso de compra, usa CIDR Range 192.168.1.0/24 y Ban Type Checkout Only. Para una regla de una cuenta con sesión iniciada, introduce Customer ID 123 y deja vacíos los demás campos de criterio de bloqueo. Sustituye los valores de ejemplo por los datos de prueba previstos.

Para un mensaje específico de una regla, introduce:

<p>Your access to checkout is temporarily restricted. Please contact support if you believe this is an error.</p>

Importar reglas CSV

Usa CSV Import > Import ban rules from CSV encima de la lista de bloqueos, elige un archivo CSV y haz clic en Import. Las columnas se interpretan según su posición:

ip_address,ban_type,reason
192.168.1.1,full,Fraud attempt
192.168.1.0/24,checkout,Suspicious checkout traffic
203.0.113.10,auth,Fake account attempts

La primera fila puede contener las cabeceras ip_address o ip. Las direcciones que contienen una barra se guardan en el campo CIDR. Las entradas importadas son activas, permanentes y se asignan al contexto de tienda actual. Un tipo de bloqueo no compatible se convierte en full; las direcciones vacías se omiten. El importador no valida exhaustivamente los formatos de las direcciones. Comprueba las entradas resultantes en lugar de considerar el número importado como una prueba de bloqueo satisfactoria.

Recoger y revisar datos de los visitantes

El componente de recogida se añade mediante displayHeader. Una vez que el DOM está listo, espera unos 1,5 segundos y después envía una solicitud a la URL de recogida generada con sw y sh obtenidos de las dimensiones de la pantalla del navegador. Con rutas amigables, una URL puede tener este aspecto:

/module/mprvisitorcontrol/collect?sw=1920&sh=1080

El navegador usa la clave de almacenamiento de sesión mprvc_collected para evitar repetir la solicitud en la misma sesión. Si el almacenamiento no está disponible, la recogida puede repetirse. Una solicitud HTTP completada marca la sesión del navegador incluso cuando la respuesta JSON informa de un estado desactivado o de un error. Comprueba la respuesta real durante las pruebas.

El servidor almacena IP, país, user-agent, sistema operativo, navegador/versión, dimensiones de la pantalla, tipo de dispositivo, ID de cliente, ID de invitado, ID de tienda y fecha del registro. El inicio de sesión y la creación de cuentas también recogen datos mediante actionAuthentication y actionCustomerAccountAdd.

La recogida evita crear un registro nuevo para el mismo cliente o invitado y la misma IP cuando existe un registro de la última hora. Puede actualizar la resolución de pantalla en ese registro reciente. Los datos no constituyen un historial completo de páginas vistas, y Visits cuenta registros almacenados en lugar de cada página vista.

La detección del país usa primero la cabecera de Cloudflare HTTP_CF_IPCOUNTRY, después PrestaShop GeoIP y por último la cookie de país. El país puede estar vacío. La detección de IP valida REMOTE_ADDR y acepta las cabeceras de Cloudflare con la IP del cliente solo cuando la conexión procede directamente de un servidor de Cloudflare. Para otros proxies inversos, configura el servidor web para restaurar la dirección del cliente en REMOTE_ADDR.

Paneles de cliente y pedido

El módulo muestra los paneles mediante displayAdminCustomers y displayAdminOrder. El panel solo aparece cuando un cliente tiene un registro almacenado. Muestra la última IP, el país, el navegador, el sistema operativo, la resolución de pantalla cuando está disponible, el tipo de dispositivo y la fecha del registro. La página del pedido muestra el último registro de visita del cliente, que no refleja necesariamente la situación al crear el pedido.

Cuando hay varias direcciones IP almacenadas, IP History muestra el país, el número de registros, la primera y la última aparición y una acción de bloqueo rápido. Las advertencias abarcan IP compartidas, más de tres países, más de tres tipos de dispositivo y más de diez IP distintas. Revísalas como indicadores, no como bloqueos automáticos. Los paneles de cliente y pedido se basan en cuentas; los registros exclusivamente de invitados no crean un panel de cliente.

Verificar y resolver problemas

Usa una dirección de prueba separada para un bloqueo. Confirma que la página coincidente devuelve HTTP 403 y muestra Access Restricted con el mensaje de la regla o el mensaje de reserva. Para las reglas de alcance limitado, confirma que una página no afectada sigue disponible y que la desactivación restablece el acceso.

Si no aparecen datos de los visitantes, comprueba que el módulo esté activo, que estén presentes el hook y la solicitud de recogida y que el endpoint devuelva {"status":"ok"}. Usa una nueva sesión del navegador si ya existe la marca de sesión. Ten en cuenta la deduplicación de una hora en el servidor. Una visita muy corta puede terminar antes de que se ejecute la recogida de datos de la pantalla.

Confirma los valores guardados en General Settings antes de probar la recogida de datos, el bloqueo o la conservación. Si un bloqueo no coincide, comprueba Active, la caducidad, la tienda, la prioridad de la lista blanca, la IP, el país y el user-agent reales y el alcance seleccionado. Los rangos CIDR y con guion admiten IPv4. Las direcciones IPv6 pueden compararse individualmente por su texto exacto.

La primera solicitud a la tienda después de 24 horas activa la eliminación de los registros más antiguos que el periodo de conservación activo, cuando ese periodo es positivo. No tienes que configurar una tarea cron del sistema para esta limpieza diaria. Si no hay solicitudes, la limpieza espera hasta la siguiente visita.

Desactivar o desinstalar

Establece Enable Data Collection o Enable Visitor Banning en No y guarda para detener por separado la recogida de datos o los bloqueos. Desactiva el módulo en el Gestor de módulos para detener ambas funciones. Para una sola regla, establece Active en No.

Usa Desinstalar en el Gestor de módulos para eliminar el módulo. La desinstalación elimina mprvc_info, mprvc_banned y mprvc_whitelist, así como la configuración compartida y las entradas de menú de este módulo. Conserva antes una copia de seguridad de la base de datos si necesitas el historial de visitantes, los bloqueos o los datos de la lista blanca.

Preguntas

1

¿Visitor Control espera a un banner de consentimiento antes de recopilar datos de los visitantes?

No. Recopila IP, país, user-agent e información del dispositivo sin comprobar un banner de consentimiento. Establece Enable Data Collection en No en General Settings y guarda para detener la recopilación. Desactiva el módulo en Module Manager para detener toda su recopilación de datos y sus bloqueos.

Problemas conocidos

6

Reglas de bloqueo de una sola dirección

ResueltoActualizado:
Corregido en: 1.0.15
Se ha corregido el fallo al guardar una regla para una sola dirección IP cuando se deja vacío el rango de red.

Guardar y permanecer

ResueltoActualizado:
Corregido en: 1.0.15
Se ha corregido Save and stay para que valide la regla y mantenga el formulario abierto después de guardar.

Refuerzo de la seguridad

ResueltoActualizado:
Corregido en: 1.0.15
Refuerzo de la seguridad.

Compatibilidad con PHP 7.1

ResueltoActualizado:
Corregido en: 1.0.11
Se ha restablecido la carga del módulo en tiendas con PHP 7.1.

Aplicación de la lista de bloqueos del comerciante

ResueltoActualizado:
Corregido en: 1.0.10
Se ha corregido la omisión de bloqueos de visitantes definidos por el comerciante cuando hay otra integración de cortafuegos activa.

Enrutamiento de las páginas de bloqueo de visitantes

ResueltoActualizado:
Corregido en: 1.0.5
Se ha corregido el fallo de apertura de las páginas de control de visitantes en instalaciones que distinguen mayúsculas y minúsculas.

Solicitudes de funcionalidades

3

Implementado

Bloqueo de rangos IPv4 mediante notación CIDR

Implementado
Puedes bloquear rangos IPv4 completos introducidos en notación CIDR, sin añadir cada dirección por separado.

Actualizaciones del módulo con un clic

Implementado
Instala las actualizaciones del módulo directamente desde el back office.

Coordinación del cortafuegos

Implementado
Coordina el bloqueo de visitantes con otras integraciones de cortafuegos compatibles.

Registro de cambios

v1.0.52026-05-22

  • Addedcomplete FR/DE/ES/IT/PL translations
  • FixedCertify visitor control install integrity
Versiones anteriores

v1.3.02026-04-20

  • Addedadmin menu management via MenuInstaller for streamlined module setup
  • AddedLicense management tab with key management and renewal options
  • Addedself-healing integrity checks for automatic diagnostics and repair
  • Addedcomplete FR/DE/ES/IT/PL translations
  • Improvedadmin list columns with visual badge indicators and multiselect filters

v1.2.02026-02-09

  • AddedPS 9 / Hummingbird theme compatibility
  • Addeduser-agent-based blocking with wildcard pattern support
  • Improvedvisitor intelligence panel with device-type and browser breakdown
  • Optimized IP-country lookup using MaxMind GeoLite2 binary database for sub-millisecond queries
  • Fixedcountry-block rule not applying to AJAX cart-add requests

v1.0.02025-08-12

  • Initialrelease: visitor intelligence and access control for PrestaShop
  • InitialReal-time visitor information: IP, device type, browser, country
  • InitialIP and country block rules with redirect or 403 response
  • InitialCompatible with PS 1.7.x and PS 8.x

v1.1.02025-05-12

  • Addedtemporary IP ban with expiry timer
  • Addedcountry allowlist mode — whitelist-only access control
  • Improveddevice detection accuracy for current iOS and Android user-agent strings

Demo

Prueba el módulo completo antes de comprar

Compra la licencia más tarde y conserva tus ajustes.

  • Tu demo de 30 días Pruébalo en tu propia tienda durante 30 días desde la primera instalación.
  • Tienda demo lista Explora una tienda demo lista en tu navegador.
  • Sin registro Sin cuenta, correo ni dominio de tienda.
Iniciar tienda demo

Al descargar, aceptas las condiciones de la demo y la política de privacidad.

Al abrir esta demo, acepta los términos de la demo y la política de privacidad.

Cargando...
Volver arriba