Módulo PrestaShop

PrestaWard Facet Shield

Proteção operacional para a navegação por facetas do PrestaShop. Deteta consultas de filtros excessivamente complexas e permite limitar apenas aquelas que podem prejudicar o desempenho da loja.

Distribuição exclusiva no PrestaShop Marketplace (Addons).

Observação + Proteção + Evidência

  • Não altere ps_facetedsearch
  • Comece sempre por Observação
  • Métricas agregadas; sem endereços IP guardados
  • PrestaShop 1.7, 8 e 9

O que faz

A pesquisa por facetas pode criar combinações de filtros muito dispendiosas. Um pequeno volume de pedidos anómalos pode consumir recursos, abrandar categorias ou deixar uma loja inacessível. O PrestaWard Facet Shield analisa essa complexidade antes de o módulo de facetas processar a consulta.

Não substitui o motor de busca nem altera os seus índices. Funciona como um disjuntor de alcance limitado: analisa o padrão de cada pedido e, apenas quando a política é expressamente ativada, rejeita as combinações que excedem os limites configurados.

Como funciona

  1. Observe primeiro. Registe de forma agregada a complexidade dos pedidos HTML e AJAX da navegação por facetas.
  2. Analise os dados. O Back Office apresenta pedidos analisados, dentro do limite, excedentes, bloqueios efetivos, histogramas e período estatístico.
  3. Ajuste os limites. Pode controlar filtros, valores por faceta e pedidos mal formulados de acordo com o comportamento real do seu catálogo, com limites próprios para uma categoria ou para todas as categorias de um nível do catálogo.
  4. Ative a Proteção apenas quando estiver validada. A alteração requer confirmação e é definida separadamente por loja.

O que inclui

  • Modo de Observação seguro por predefinição e modo de Proteção explícito.
  • Inscrição automática na Integrity API: sem necessidade de configurar contas nem chaves.
  • Análise precoce da complexidade para pedidos de navegação facetada em HTML e AJAX.
  • Limites configuráveis por loja para facetas, valores e contexto do pedido.
  • Painel com agregados por minuto, histograma de complexidade e motivos traduzidos de excesso.
  • Painel de limites sugeridos: com base no tráfego registado no modo Observação, propõe um valor para cada limite, mostra quantos pedidos são bloqueados pelos limites atuais e quantos seriam bloqueados pela sugestão, e explica a causa principal em linguagem clara, por exemplo, que filtro de que categoria provoca a maior parte do excesso. Um botão aplica os quatro limites sugeridos à loja selecionada sem alterar o modo.
  • Sugestões robustas: uma sugestão nunca é mais restritiva do que o limite por defeito nem excede a política assinada do Integrity. Se algumas categorias concentrarem os pedidos que excedem um limite, a sugestão é calculada com base no restante, não flexibiliza esse limite e o painel explica que parte do excesso provém de quantas categorias.
  • Estatísticas com retenção configurável (90 dias por predefinição, entre 30 e 365): os registos por minuto são agrupados por hora e os que expiram são eliminados em lotes em segundo plano, nunca enquanto se está a servir uma página a um cliente.
  • O diagnóstico de bots conserva as amostras mais recentes (500 por predefinição, configurável entre 50 e 5000) e descarta as mais antigas, em vez de deixar de as registar.
  • O painel da cache de facetas, que distingue as tabelas de cache das de índices, mostra como o tamanho tem evoluído nos últimos dias, com um aviso caso aumente rapidamente, e inclui uma ligação para a configuração nativa de ps_facetedsearch, onde se encontram as ferramentas para reconstruir índices e esvaziar a cache. O Facet Shield apenas lê estas tabelas e nunca as altera nem as apaga.
  • Painel significativamente mais rápido em lojas com elevado tráfego registado: calcula estatísticas, tendências e limites sugeridos com duas leituras e guarda o resultado durante dez minutos num ficheiro de cache descartável.
  • Sincronização com o Integrity ao abrir o painel, através de um pedido em segundo plano que não atrasa o carregamento da página e, no máximo, uma vez por minuto e por loja.
  • Limites por categoria e por nível do catálogo: uma categoria, ou todas as de um nível, pode ter os seus próprios limites (tamanho da consulta, facetas, valores totais e valores numa faceta); um limite em branco utiliza o nível seguinte e os limites globais continuam a ser a base. A política assinada da Integrity também limita os limites por categoria.
  • Limites sugeridos por categoria: o painel apresenta as categorias que necessitam de um novo limite, indicando o número de pedidos a partir do qual seriam bloqueadas atualmente e a sugestão de limite, e permite aplicar um limite a uma categoria com um clique. Uma categoria que pareça ser de exploração automatizada nunca é flexibilizada.
  • Proteção piloto por categoria: com a loja em «Observação», pode fazer com que apenas as categorias que escolher sejam bloqueadas, enquanto as restantes permanecem em «Observação». Requer uma política de Integrity válida e assinada, bem como uma confirmação explícita por categoria, e basta um clique para a desativar.
  • Limite de pedidos por endereço (opcional): conta os pedidos filtrados por minuto e por endereço (30 por minuto por predefinição, entre 5 e 600). Acima do limite, na opção «Proteção», o endereço é bloqueado temporariamente (uma hora por predefinição, até 24) com o código de estado HTTP 429 e o parâmetro «Retry-After»; na opção «Observação», apenas é contabilizado. Não é guardado nenhum endereço IP, apenas um hash com chave que é eliminado pouco depois do término do bloqueio, pelo que não existe uma lista negra permanente. Os endereços e intervalos da sua lista de endereços autorizados nunca são contabilizados e uma falha na base de dados nunca bloqueia um cliente.
  • Motores de busca verificados: na secção «Proteção», um Googlebot ou Bingbot cujo DNS inverso e direto coincidam com os servidores oficiais recebe uma resposta simplificada com «noindex» e a URL canónica da categoria, em vez de um erro 403, de modo que a URL do filtro é retirada do índice sem executar o SQL de facetas. A consulta é feita apenas a quem se identifica como um desses motores de busca.
  • Sinais de falsos positivos: os pedidos que excedem os limites são também contabilizados quando provêm de um cliente com sessão iniciada, de um motor de busca verificado ou de uma sequência rápida de dez ou mais por minuto, e as estatísticas apresentam os três valores com a respetiva proporção.
  • Alertas por e-mail (opcionais), com a configuração de e-mail da loja: crescimento rápido da cache (no máximo uma vez por dia), picos de pedidos bloqueados (no máximo a cada seis horas) e um resumo semanal, para até cinco destinatários à sua escolha, com um botão para enviar um e-mail de teste. Sem PDFs nem links no texto, e enviados a partir da manutenção em segundo plano, nunca ao apresentar uma página a um cliente.
  • Limpeza automática da cache (opcional): quando a cache da pesquisa por facetas ultrapassar o tamanho que escolher, o Facet Shield solicita ao ps_facetedsearch que esvazie a sua própria cache através do método disponibilizado por esse módulo, no máximo uma vez por dia, e regista essa ação no registo de suporte. Se a versão instalada não dispuser desse método, nada será alterado.
  • Aviso sobre versões vulneráveis do ps_facetedsearch (da 3.0.0 à 4.0.3, CVE-2026-54159, corrigido na versão 4.0.4), com base numa pequena tabela incluída no módulo, sem necessidade de efetuar qualquer download.
  • Painel com separadores (Resumo, Limites e categorias, Tráfego e bots, Estatísticas, Cache e manutenção e Configuração, além de um separador Suporte, sempre o último): apenas é calculada a aba aberta e o Resumo apresenta o modo, as últimas 24 horas, uma ação principal e, no máximo, uma linha de alerta.
  • Reposição protegida das estatísticas por loja.
  • O separador «Limites e categorias» está organizado em cartões: limites globais, impacto das sugestões com botões de tamanho normal e tabela de regras por categoria com um formulário para adicionar outra. O separador «Cache» utiliza blocos expansíveis e uma única linha de estatísticas.
  • E-mails de alerta com o logótipo da sua loja no cabeçalho e, no rodapé, o logótipo da GO ON Agency com a assinatura «PrestaWard by GO ON Agency».
  • Aspecto unificado do painel nos quatro módulos PrestaWard: cabeçalhos de secção, cartões de formulário com bordas neutras e blocos expansíveis comuns, estatísticas numa única linha e um logótipo da GO ON Agency de maiores dimensões no cabeçalho. O botão principal passa a ter uma cor sólida da marca, sem gradiente.
  • Respostas de bloqueio compreensíveis (HTTP 403 ou HTTP 429 com «Retry-After» no limite por endereço), sem revelar detalhes internos da política.
  • Exclusão de categorias específicas da análise de complexidade, com alterações auditáveis.
  • Aviso no painel quando a cache estimada da pesquisa por facetas atingir o tamanho que definir.
  • Painel de suporte da GO ON Agency com um relatório de diagnóstico descarregável. É descarregado por um funcionário com permissão de edição, tendo selecionado uma loja. Contém apenas versões, estados e contadores, não inclui URL de pedidos, endereços IP nem credenciais e não é enviado automaticamente.
  • Ligação ao PrestaWard Integrity, cuja política assinada só pode reforçar os seus limites, nunca flexibilizá-los. No ecrã do módulo, o botão «Sincronizar» atualiza a ligação.
  • Painel e traduções em nove idiomas.

Limites a rever

Antes de que PrestaShop construa a consulta de produtos, o Facet Shield analisa o parâmetro de filtros da pesquisa por facetas. Os limites iniciais são de 256 bytes para o filtro, 8 facetas, 16 valores no total e 6 valores por faceta, rejeitando os pedidos com filtros mal formados. Pode alterá-los para cada loja e, além disso, definir limites próprios para uma categoria ou para todas as categorias de um nível do catálogo. Uma solicitação que exceda qualquer um destes limites é considerada um excesso.

Requisitos

  • PrestaShop desde a versão 1.7.7 até à 9 e a versão do PHP exigida pela sua versão do PrestaShop (PHP 7.1 ou superior no PrestaShop 1.7).
  • Uma loja que utilize a pesquisa por facetas do PrestaShop: o módulo analisa o parâmetro de filtros (q) das páginas de categorias e de pesquisa.
  • Para ativar a Proteção, a loja tem de ter registado, pelo menos, um pedido de facetas no modo Observação.
  • Os alertas por e-mail utilizam a configuração de e-mail da loja.
  • Os limites, o modo e as estatísticas são específicos de cada loja. Para descarregar o relatório de suporte ou alterar o diagnóstico de bots, selecione uma loja específica.

Privacidade e âmbito de aplicação

Por predefinição, o Facet Shield guarda apenas métricas agregadas de complexidade. Se ativar o diagnóstico de bots, que está desativado por predefinição, este conserva uma amostra limitada dos pedidos que excedem os limites: até 512 caracteres do filtro de facetas, o motivo, o tipo de página, a categoria, o agente do utilizador (até 255 caracteres), o contador e as datas. Nunca guarda endereços IP, cookies nem URLs completas. Se ativar o limite por endereço, apenas guarda um hash com a chave do endereço, que é eliminado automaticamente pouco depois de terminar o bloqueio. Os registos mais antigos são automaticamente eliminados quando se ultrapassa o limite máximo que configurar (500 por predefinição); o administrador pode eliminá-los a partir do módulo e estes podem ser exportados.

O seu âmbito de aplicação é a navegação por facetas nas categorias e nas pesquisas, tanto em pedidos normais como em AJAX. Não analisa pedidos sem filtros, nem o carrinho, a encomenda, os formulários, os clientes ou o acesso administrativo; para tal, são necessários controlos específicos.

O que não faz

  • Não se trata de um firewall de aplicações web (WAF): é uma defesa adicional limitada aos filtros da pesquisa por facetas.
  • Não substitui nem corrige o ps_facetedsearch e não altera os seus índices. Não limpa as caches por iniciativa própria: apenas se ativar a limpeza automática, solicita a esse módulo que esvazie a sua própria cache através do método que este disponibiliza, no máximo uma vez por dia, e nunca apaga as suas tabelas. Deve manter atualizados o PrestaShop e esse módulo.
  • Não bloqueia nada no modo de Observação, exceto as categorias que tenha colocado expressamente em Proteção piloto, e apenas enquanto existir uma política de Integrity válida e assinada. Se a política expirar, o módulo volta a limitar-se a observar até que seja renovada.
  • Não mantém listas negras permanentes de endereços: o bloqueio devido ao limite por endereço é temporário e é eliminado automaticamente.
  • Não realiza qualquer ação se o pedido não incluir filtros.
  • O rodapé dos e-mails do módulo não contém links, endereços de contacto nem imagens alojadas fora da sua loja: o logótipo da GO ON Agency é um ficheiro do próprio módulo que é servido a partir da sua loja.

Compatibilidade e validação

O módulo declara ser compatível com o PrestaShop 1.7.7 a 9. A versão 0.1.16 superou os testes de laboratório no PrestaShop 1.7, 8 e 9 a 15 de outubro de 2026, tanto numa instalação nova como numa atualização a partir da versão 0.1.15. Antes de ativar, verifique a instalação, os filtros habituais, a Observação, a Proteção, a atualização e a desinstalação na sua combinação específica de PrestaShop, PHP, tema e módulos.

Utilização segura

Não ative a Proteção durante a instalação. Deixe o módulo em Observação, navegue pelas categorias e filtros habituais, analise as estatísticas e defina limites que não afetem os clientes legítimos. Se um limite bloquear a navegação real, volte ao modo Observação, corrija o limiar e valide novamente.

É necessária uma atualização de segurança

O Facet Shield adiciona uma defesa específica contra assinaturas completas de serialização PHP em consultas de facetas, mesmo que uma categoria esteja excluída. Não substitui a correção oficial: para resolver a vulnerabilidade conhecida do módulo de facetas, deve atualizar ps_facetedsearch para a versão 4.0.4 ou posterior. O painel avisa-o caso detete uma versão afetada (da 3.0.0 à 4.0.3, CVE-2026-54159).

Licença

O PrestaWard Facet Shield é distribuído ao abrigo da licença Academic Free License 3.0 (AFL-3.0). Pode utilizá-lo, estudá-lo, modificá-lo e redistribuí-lo de acordo com os seus termos. O pacote do módulo inclui a licença completa.

Histórico de versões

Este histórico resume, versão a versão, o impacto para as lojas e as equipas de comércio eletrónico.

0.1.16

  • Novo: limites por categoria e por nível do catálogo. Uma categoria, ou todas as de um nível, pode ter os seus próprios limites (tamanho da consulta, facetas, valores totais e valores numa faceta); um limite em branco utiliza o nível seguinte e os limites globais continuam a servir de base. Uma política assinada da Integrity também limita os limites por categoria.
  • Novo: limites sugeridos por categoria. O painel apresenta as categorias que necessitam de um limite diferente, indicando o número de pedidos a partir do qual seriam bloqueadas atualmente e a sugestão correspondente, e permite aplicar um limite a uma categoria com um clique. Reutiliza a regra rigorosa da sugestão global: uma categoria que pareça ser de exploração automatizada nunca é flexibilizada.
  • Novo: Proteção piloto por categoria. Com a loja em «Observação», as categorias que selecionar poderá bloquear, enquanto as restantes ficam apenas em observação. Requer uma política do Integrity válida e assinada (sem ela, o Facet Shield fica apenas em observação, tal como anteriormente) e uma confirmação explícita por categoria; para interromper o piloto, basta um clique.
  • Novo: limite de pedidos por endereço, opcional. Conta os pedidos filtrados por minuto e por endereço (30 por minuto por predefinição, entre 5 e 600); acima do limite, na opção «Proteção», o endereço é bloqueado temporariamente (uma hora por predefinição, até 24) com o código de estado HTTP 429 e «Retry-After», e na opção «Observação» é apenas contabilizado. Não é guardado nenhum endereço IP: apenas um hash com chave que é eliminado pouco depois do fim do bloqueio, pelo que não existe uma lista negra permanente. O endereço é aquele que o PrestaShop resolve (através dos proxies de confiança); os endereços e intervalos da sua lista de endereços permitidos nunca são contabilizados e um problema na base de dados nunca bloqueia um cliente.
  • Novo: motores de busca verificados. Na secção «Proteção», um Googlebot ou Bingbot cujo DNS inverso e direto coincidam com os servidores oficiais recebe uma resposta simplificada com «noindex» e a URL canónica da categoria, em vez de um erro 403; assim, a URL do filtro é removida do índice e não é executado qualquer SQL de facetas. A consulta é feita apenas a quem se identifica como um desses motores de busca; o veredicto é armazenado em cache (24 horas se for válido, uma hora caso contrário) e as consultas são limitadas por minuto para toda a loja.
  • Sinais de falsos positivos: os pedidos que excedem os limites são igualmente contabilizados quando provêm de um cliente com sessão iniciada, de um motor de busca verificado ou de uma rajada rápida de dez ou mais por minuto, e as estatísticas apresentam esses três valores com a respetiva proporção. As rajadas são medidas enquanto o limite por endereço estiver ativado.
  • Novo: alertas por e-mail, opcionais, com a configuração de e-mail da loja: crescimento rápido da cache (no máximo uma vez por dia), picos de pedidos bloqueados (no máximo a cada seis horas) e um resumo semanal separado, para até cinco destinatários à sua escolha e com um botão de e-mail de teste. Sem PDF nem links no texto. São enviados a partir da manutenção em segundo plano, nunca ao servir uma página a um cliente.
  • Novo: limpeza automática da cache, opcional. Quando a cache da pesquisa por facetas ultrapassar o tamanho que escolher, o Facet Shield solicita ao ps_facetedsearch que esvazie a sua própria cache através do método que esse módulo disponibiliza, no máximo uma vez por dia, e regista essa ação no registo de suporte. Se a versão instalada não dispuser desse método, nada será alterado. O Facet Shield continua a nunca apagar as tabelas de outro módulo.
  • Aviso sobre versões vulneráveis do ps_facetedsearch, com base numa pequena tabela incluída no módulo (não é necessário fazer qualquer download): as versões da 3.0.0 à 4.0.3 estão afetadas pela CVE-2026-54159, corrigida na versão 4.0.4, e o painel recomenda a atualização.
  • O painel está organizado em separadores (Resumo, Limites e categorias, Tráfego e bots, Estatísticas, Cache e manutenção e Configuração). O Resumo apresenta apenas o modo, as últimas 24 horas, uma ação principal e, no máximo, uma linha de alerta; apenas é calculado o separador que se encontra aberto. O painel de suporte da GO ON Agency tem a sua própria aba, «Suporte», sempre a última, e o estado do Integrity fica no final de todas as abas. O cabeçalho apresenta agora o logótipo da GO ON Agency.
  • O separador «Limites e categorias» está organizado em cartões: limites globais, impacto das sugestões com botões de tamanho normal e tabela de regras por categoria com um formulário para adicionar outra. O separador «Cache» utiliza blocos expansíveis e uma única linha de estatísticas.
  • Os e-mails de alerta apresentam o logótipo da sua loja no cabeçalho (com o nome da loja como texto alternativo) e um rodapé comum com o logótipo da GO ON Agency e a assinatura «PrestaWard by GO ON Agency», sem links nem endereços de contacto. O logótipo do rodapé é um ficheiro do próprio módulo, disponibilizado a partir da sua loja.
  • Aspecto unificado do painel nos quatro módulos PrestaWard: cabeçalhos de secção, cartões de formulário com bordas neutras e blocos expansíveis comuns, estatísticas numa única linha e um logótipo da GO ON Agency de maiores dimensões no cabeçalho. O botão principal passa a ter uma cor sólida da marca, sem gradiente.
  • Corrige o facto de, no PrestaShop 9, o tema de administração apresentar os separadores sublinhados como ligações e os títulos das secções em maiúsculas. Os estilos comuns neutralizam este efeito apenas no painel do PrestaWard, pelo que o PrestaShop 1.7 e 8 mantêm o aspeto anterior.
  • Corrige o facto de, no PrestaShop 1.7, a folha de estilos do módulo ser rejeitada ao registar-se com o número da versão no endereço. Agora, o ficheiro é verificado e registado sem parâmetros, de modo a que o novo aspeto apareça nas versões 1.7, 8 e 9.
  • Corrige o facto de, não PrestaShop 9, os formulários de ação do painel e a sincronização com o Integrity verificarem o token de segurança através de um método que o PrestaShop 9 não utiliza, o que poderia levar à rejeição dos mesmos. Agora a validação é efetuada através do serviço do PrestaShop 9; no PrestaShop 1.7 e 8, a verificação permanece inalterada.
  • Quando a ligação ao Integrity não puder ser atualizada nesse momento, o painel apresenta uma única mensagem: a ligação guardada continua válida e será tentada novamente de forma automática. Os rótulos de todos os separadores estão traduzidos para os nove idiomas.
  • Corrige o facto da ligação com o Integrity se deteriorar no contexto «todas as lojas»: a identidade da instalação é agora lida como uma unidade a partir do âmbito global (ou da loja onde está guardada) em qualquer contexto; a atualização transfere para o âmbito global uma identidade guardada numa loja sem a regenerar e, caso não seja possível lê-la, o estado do Integrity é mantido tal como estava.
  • Corrige o facto de a tabela do separador «Cache» se deslocar alguns píxeis para os lados no ecrã de computador: o contentor ocupa agora o espaço entre as suas margens.
  • Todos os novos textos estão disponíveis nos nove idiomas do módulo. A atualização adiciona uma pequena tabela e três contadores às estatísticas de pedidos e, por si só, não ativa nada; o contrato com a Integrity API não se altera e uma política assinada válida continua a poder apenas tornar os limites mais restritivos.

0.1.15

  • As estatísticas de pedidos deixam de crescer sem limites: a cada hora, os registos por minuto com mais de uma hora são agrupados num único registo por hora, sem alterar os totais nem os gráficos, e os registos anteriores ao novo prazo «Conservação de estatísticas (dias)» (90 por predefinição, entre 30 e 365) são eliminados em pequenos lotes em segundo plano, nunca enquanto se está a servir uma página a um cliente.
  • O diagnóstico de bots já não interrompe a recolha de amostras ao atingir 500: conserva as mais recentes e descarta as mais antigas. Esta funcionalidade é controlada pela configuração «Amostras de diagnóstico a conservar» (500 por predefinição, entre 50 e 5000).
  • Novo painel «Limites sugeridos»: com base no tráfego registado no modo Observação, propõe um valor para cada limite (tamanho da consulta, facetas, valores totais e valores numa faceta), mostra quantos pedidos são bloqueados pelos limites atuais e quantos seriam bloqueados pela sugestão, e explica a causa principal, por exemplo, que filtro de que categoria provoca mais excessos. Um botão aplica os quatro limites sugeridos à loja selecionada sem alterar o modo.
  • As sugestões nunca são mais rigorosas do que o limite por defeito, nunca flexibilizam um limite e respeitam a política assinada do Integrity quando esta é mais rigorosa. Se algumas categorias concentrarem os pedidos que excedem um limite, a sugestão é calculada com base no restante; o painel indica que parte do excesso provém de quantas categorias e esse limite não é alterado ao aplicar a sugestão.
  • O painel da cache da pesquisa por facetas distingue as tabelas de cache das tabelas de índices, mostra como o seu tamanho tem evoluído nos últimos dias com um aviso caso aumente rapidamente, identifica as lojas onde o ps_facetedsearch está em falta ou desativado e fornece uma ligação para a sua configuração nativa. O Facet Shield apenas lê essas tabelas: nunca as altera nem as apaga.
  • O painel é muito mais rápido em lojas com elevado tráfego de registos: com mais de meio milhão de registos, o tempo de carregamento passa de cerca de 20 segundos para apenas alguns segundos, e para uma fração de segundo se for reaberto em menos de dez minutos. Os valores apresentados não se alteram.
  • Todos os novos textos estão disponíveis nos nove idiomas do módulo.
  • O painel de suporte e diagnóstico é colocado imediatamente antes da secção Integrity, tal como nos restantes módulos PrestaWard, e, no contexto «todas as lojas», já não desaparece: indica que é necessário selecionar uma loja.
  • Sincroniza com o Integrity sempre que abrir o painel, através de um pedido em segundo plano que nunca atrasa a página e, no máximo, uma vez por minuto por loja.

0.1.14

  • Deixa de tentar novamente a inscrição no Integrity quando a chave de registo da loja é alterada e apresenta um aviso claro.
  • Renove a política de Integrity assinada antes que expire e mantenha a política em vigor e os seus limites caso a renovação falhe.
  • Uma política assinada do Integrity só pode tornar mais rigorosos os limites configurados na loja, nunca flexibilizá-los: no que diz respeito ao tamanho, ao número de facetas, de valores e de valores por faceta, aplica-se o valor mais baixo entre o seu limite e o da política, e o modo (Observação ou Proteção) é decidido por si.
  • Corrige a chave de política incluída para que funcione no PHP 7.1 e 7.2.
  • Adiciona o painel de suporte da GO ON Agency em nove idiomas, com um relatório de diagnóstico descarregável que não inclui dados de clientes nem é enviado automaticamente. Só pode ser descarregado por um funcionário com permissão de edição e com uma loja selecionada.
  • Declara compatibilidade a partir do PrestaShop 1.7.7.0, a versão mais antiga testada.

0.1.13

  • Corrige o teste de inscrição e as tarefas do Back Office no PrestaShop 9.
  • Aceita os dois formatos válidos de URL de teste de propriedade com validação rigorosa.
  • Melhora o diagnóstico e as novas tentativas de inscrição no Integrity.

0.1.12

  • A desinstalação elimina também a tabela de exclusões por categoria e todas as chaves de configuração do Integrity (fase de instalação, teste de inscrição, credencial selada e chaves), sem deixar rasto.
  • Foram adicionados os index.php de proteção que faltavam e a verificação de acesso direto através de _PS_VERSION_ no controlador do Back Office e nos três últimos scripts de atualização, tal como nos restantes pontos de entrada do módulo.
  • Adota o sistema de design partilhado do PrestaWard: o painel do Back Office utiliza o cabeçalho escuro comum, o indicador de estado unificado (Desativado/A observar/A proteger) e o painel «Monitorização GO ON», fornecidos a partir de uma única folha de estilos partilhada e alojada localmente.

0.1.11 — atualização de segurança

  • As exclusões por categoria apenas evitam a análise normal de complexidade: as assinaturas completas de serialização PHP continuam a ser analisadas, registadas e bloqueadas sempre no modo de Proteção.
  • Fica documentado que é necessária a versão 4.0.4 ou posterior do ps_facetedsearch para corrigir a vulnerabilidade CVE-2026-54159; o Facet Shield continua a ser uma medida de defesa em profundidade, não um substituto da correção oficial.

0.1.10

  • Simulador de URL local ou q, tendência diária baseada em agregados existentes e exportações CSV limitadas.
  • Exclusões auditáveis por categoria, com motivo obrigatório e eliminação lógica; não são excluídos endereços IP nem user-agent.
  • A primeira ativação da Proteção exige evidência própria de Observação e calcula uma estimativa conservadora do impacto com a política candidata; sem pedidos observados, não permite ativar o bloqueio.
  • Todos os diretórios de produção do pacote incluem um ficheiro index.php que encerra a execução, incluindo views/js.
  • O guia indica como voltar a inscrever o Integrity por loja após a rotação de _COOKIE_KEY_, sem recuperar nem partilhar a chave anterior.
  • Proteção adicional contra cabeçalhos completos de serialização PHP em consultas de facetas, sem bloquear valores normais que contenham texto como O:.
  • Aviso configurável por loja quando a estimativa da cache da pesquisa facetada ultrapassa o limiar definido; o módulo não apaga nem atualiza nada automaticamente.
  • As novas tentativas e os heartbeats do Integrity deixam de ser executados no âmbito da renderização síncrona de qualquer ecrã do Back Office: são programados através de um pedido assíncrono autenticado e limitado.
  • A consulta ao resumo de eventos antigo foi eliminada sem apagar os dados históricos, e o painel de atualizações existente é mantido como único aviso de novas versões.

0.1.9

  • A inscrição utiliza agora o dispatcher nativo de módulos do PrestaShop e deixa de depender de URL amigáveis, regras de .htaccess ou caches de rotas.
  • A atualização a partir de versões anteriores corrige de forma idempotente os hooks necessários, sem apagar políticas nem estatísticas.
  • Ao abrir o painel de controlo, é verificado automaticamente se existe uma nova versão, com um cache de seis horas e sem bloquear o Back Office caso o manifesto não responda.
  • Fluxo validado no PrestaShop 1.7, 8 e 9.

0.1.8

  • A Proteção limita-se aos controladores reais de categoria e pesquisa, evitando bloquear parâmetros q que não estejam relacionados com as facetas.
  • Os pedidos HEAD bloqueados devolvem apenas cabeçalhos, sem corpo.
  • O diagnóstico identifica o agente tal como declarado e explica corretamente a amostra abreviada do user-agent que é conservada de forma opcional.
  • Integrity apresenta-se com um nível mínimo de ligação e sincronização, sem detalhes internos que possam confundir o utilizador.
  • Compatibilidade funcional validada no PrestaShop 1.7, 8 e 9.

0.1.7

  • Heartbeat automático sem cron: o tráfego da loja ativa uma sonda local limitada e o servidor renova a presença junto da Integrity API sem expor credenciais ao navegador.
  • Bloqueio atómico por loja, intervalo de seis horas e espera de quinze minutos após falhas, para evitar envios duplicados.
  • A sincronização manual do Integrity também atualiza o heartbeat.
  • Compatibilidade validada no PrestaShop 1.7, 8 e 9.

0.1.6

  • Heartbeat autenticado, tentativas automáticas e diagnóstico detalhado da ligação com a Integrity API.
  • Diagnóstico opcional também no modo Observação, com identificação do agente, filtros por bot e motivo, paginação e amostra limitada da combinação de facetas.
  • Retenção controlada pelo administrador: número de amostras, espaço estimado e eliminação manual a partir do Back Office.
  • Indicadores visuais e de leitura única relativos ao tamanho, registos estimados e tabelas da cache de facetas.
  • Interface reorganizada: modos e ativação da Proteção em «O que faz», secções delimitadas e a Integrity API relegada para o final.
  • Sem IP, cookies nem URLs completas; textos disponíveis em nove idiomas.
  • Instalação, bloqueio, diagnóstico, cache, desinstalação e reinstalação verificados no PrestaShop 1.7, 8 e 9.

0.1.5

  • Inscrição automática e não bloqueante na Integrity API através de um teste de verificação da loja.
  • A instalação não requer contas, chaves API nem etapas de registo manual.
  • Políticas assinadas e verificadas com âncoras de confiança incluídas na versão.

0.1.4

  • Histogramas de complexidade e contagem atómica para todos os pedidos analisados.
  • Limites de valores por faceta, pedidos malformados e contexto de pedido restrito.
  • Estado de Observação, início do período estatístico e reposição protegida por loja.
  • Motivos e estatísticas traduzidos.

0.1.3

  • Indicadores de pedidos analisados, dentro do limite, excedentes e bloqueios efetivos.
  • Agregados por loja e por minuto, sem IP, URL, agente do utilizador nem valores selecionados.
  • Seletor de modo acessível e shell visual PrestaWard para computador e telemóvel.

0.1.2

  • Identidade da instalação e da loja preparada para a Integrity API.
  • Política assinada com o último estado válido por loja e retorno seguro à Observação.
  • Estado da ligação e nova tentativa manual a partir do Back Office, sem chamadas a partir do Front Office.