Qué resuelve
La búsqueda por facetas puede crear combinaciones de filtros muy costosas. Un volumen pequeño de solicitudes anómalas puede consumir recursos, ralentizar categorías o dejar una tienda inaccesible. PrestaWard Facet Shield analiza esa complejidad antes de que el módulo de facetas procese la consulta.
No sustituye al buscador ni altera sus índices. Actúa como un cortacircuitos acotado: observa el patrón de cada petición y, solo cuando la política se activa expresamente, rechaza las combinaciones que exceden los límites configurados.
Cómo funciona
- Observa primero. Registra de forma agregada la complejidad de las solicitudes HTML y AJAX de navegación facetada.
- Revisa la evidencia. El Back Office muestra solicitudes analizadas, dentro de límite, excesos, bloqueos reales, histogramas y periodo estadístico.
- Ajusta los límites. Puedes controlar filtros, valores por faceta y solicitudes malformadas según el comportamiento real de tu catálogo.
- Activa Protección solo cuando esté validada. El cambio requiere confirmación y queda separado por tienda.
Qué incluye
- Modo Observación seguro por defecto y modo Protección explícito.
- Inscripción automática en Integrity API: sin cuentas ni claves que configurar.
- Análisis temprano de complejidad para peticiones de navegación facetada HTML y AJAX.
- Límites configurables por tienda para facetas, valores y contexto de petición.
- Panel con agregados por minuto, histograma de complejidad y motivos traducidos de exceso.
- Restablecimiento protegido de estadísticas por tienda.
- Comprobación de actualizaciones mediante manifiesto público PrestaWard.
- Respuestas bloqueadas comprensibles, sin exponer detalles internos de la política.
Privacidad y alcance
Por defecto, Facet Shield solo guarda métricas agregadas de complejidad. Si activas el diagnóstico de bots, conserva una muestra limitada de la combinación de facetas y del agente de usuario para identificar rastreadores; nunca guarda IP, cookies ni URL completas. Las muestras permanecen hasta que el administrador las borra desde el módulo.
Su alcance es la navegación facetada. No protege formularios, carritos, clientes ni el acceso administrativo; para ello se necesitan controles específicos.
Compatibilidad verificada
El ciclo de instalación, protección, desinstalación y reinstalación se ha comprobado en PrestaShop 1.7.8.11 con PHP 7.4, PrestaShop 8.2.7 con PHP 8.1 y PrestaShop 9.1.4 con PHP 8.5.
Uso seguro
No actives Protección al instalar. Deja el módulo en Observación, navega por categorías y filtros habituales, revisa las estadísticas y fija límites que no afecten a clientes legítimos. Si un límite bloquea navegación real, vuelve a Observación, corrige el umbral y valida de nuevo.
Licencia
PrestaWard Facet Shield se distribuye bajo GPL-3.0-or-later. Puedes utilizarlo, estudiarlo, modificarlo y redistribuirlo conforme a sus términos. Incluye la licencia completa en el paquete descargable.
Changelog
0.1.9
- El enrolamiento utiliza ahora el dispatcher nativo de módulos de PrestaShop y deja de depender de URL amigables, reglas de
.htaccesso cachés de rutas. - La actualización desde versiones anteriores repara de forma idempotente los hooks necesarios sin borrar políticas ni estadísticas.
- Al abrir el dashboard se comprueba automáticamente si existe una versión nueva, con una caché de seis horas y sin bloquear el Back Office si el manifiesto no responde.
- Flujo validado en PrestaShop 1.7, 8 y 9.
0.1.8
- La protección se limita a controladores reales de categoría y búsqueda, evitando bloquear parámetros
qajenos a las facetas. - Las solicitudes
HEADbloqueadas devuelven únicamente cabeceras, sin cuerpo. - El diagnóstico identifica el agente como declarado y explica correctamente la muestra abreviada de user-agent que se conserva de forma opcional.
- Integrity se presenta con un estado mínimo de conexión y sincronización, sin detalles internos que confundan al usuario.
- Compatibilidad funcional validada en PrestaShop 1.7, 8 y 9.
0.1.7
- Heartbeat automático sin cron: el tráfico de la tienda activa una sonda local limitada y el servidor renueva la presencia ante Integrity API sin exponer credenciales al navegador.
- Bloqueo atómico por tienda, intervalo de seis horas y espera de quince minutos tras fallos para evitar envíos duplicados.
- La sincronización manual de Integrity también renueva el heartbeat.
- Compatibilidad validada en PrestaShop 1.7, 8 y 9.
0.1.6
- Heartbeat autenticado, reintentos automáticos y diagnóstico detallado de conexión con Integrity API.
- Diagnóstico opcional también en Observación, con identificación del agente, filtros por bot y motivo, paginación y muestra acotada de la combinación de facetas.
- Retención controlada por el administrador: número de muestras, espacio estimado y borrado manual desde el Back Office.
- Indicadores visuales y de solo lectura sobre tamaño, registros estimados y tablas de la caché de facetas.
- Interfaz reorganizada: modos y activación de Protección bajo «Qué hace», secciones delimitadas e Integrity API relegada al final.
- Sin IP, cookies ni URL completas; textos disponibles en nueve idiomas.
- Instalación, bloqueo, diagnóstico, caché, desinstalación y reinstalación verificados en PrestaShop 1.7, 8 y 9.
0.1.5
- Inscripción automática y no bloqueante en Integrity API mediante prueba de control de la tienda.
- La instalación no requiere cuentas, claves API ni pasos de registro manual.
- Políticas firmadas verificadas con anclas de confianza incluidas en la versión.
0.1.4
- Histogramas de complejidad y conteo atómico para todas las solicitudes analizadas.
- Límites de valores por faceta, solicitudes malformadas y contexto de petición acotado.
- Estado de Observación, inicio del periodo estadístico y restablecimiento protegido por tienda.
- Motivos y estadísticas traducidos.
0.1.3
- Indicadores de solicitudes analizadas, dentro de límite, excesos y bloqueos reales.
- Agregados por tienda y minuto sin IP, URL, agente de usuario ni valores seleccionados.
- Selector de modo accesible y shell visual PrestaWard para escritorio y móvil.
0.1.2
- Identidad de instalación y tienda preparada para Integrity API.
- Política firmada con último estado válido por tienda y retorno seguro a Observación.
- Estado de conexión y reintento manual desde Back Office, sin llamadas desde Front Office.