Descrição do Problema / Contexto
Esta requisição (BATCH-109) é focada no saneamento de bugs críticos de segurança, unblocking de crawlers de redes sociais (WhatsApp/Meta/Twitter), tratamento de cookies, permissões Docker e correções no salvamento/AJAX do Editor Visual.
Escopo Detalhado da Requisição
Módulo 1: Isenção de Crawlers e Tratamento Transparente de Páginas Públicas
-
Detecção de Web Crawlers / Social Scrapers em
gestor.php:-
Implementar verificação de User-Agent no bootstrap de resposta para identificar bots e crawlers conhecidos (ex.:
WhatsApp,facebookexternalhit,Twitterbot,LinkedInBot,TelegramBot,Discordbot,Googlebot,bingbot,Slackbot,Pinterest, etc.). -
Isentar crawlers de qualquer redirecionamento
Location:para_gestor-cookie-verify/oucookies-is-mandatory/, servindo o HTML público original com seus metadados OpenGraph intactos.
-
-
Verificação Silenciosa de Cookie em Requisições GET Públicas:
-
Em páginas públicas (fora do painel de administração e áreas autenticadas), a emissão do cookie de verificação deve ocorrer via cabeçalho HTTP
Set-Cookiena própria resposta da página, sem interromper o carregamento com redirecionamento 302Location: _gestor-cookie-verify/. -
Restringir o redirecionamento
_gestor-cookie-verify/exclusivamente a fluxos de áreas restritas/autenticadas que efetivamente necessitem de sessão ativa por cookie.
-
Módulo 2: Sanitização da Página cookies-is-mandatory/ e Analytics
-
Bloqueio de Scripts de Rastreamento em Páginas do Sistema:
-
Suprimir a injeção/execução de scripts de analytics e pixels (GTM, Meta Pixel) na página
cookies-is-mandatory/e páginas de erro/sistema. -
Tratar a inicialização do Meta Pixel no frontend (
gestor/assets/global/global.js) para evitar duplicação (Duplicate Pixel ID) e requisições CAPI malformadas (400 Bad Request) quando o ambiente/cookie não estiver completamente provisionado.
-
Módulo 3: Permissões de Log no Docker e Warning no HTML Editor
-
Ajuste de Permissões de Log no Docker Entrypoint:
-
Atualizar
dev-environment/docker/entrypoint.sh(egerenciar-sites.sh) para aplicar permissões de escrita (chown -R www-data:www-dataechmod -R 777) nos diretórios de logs em[REDACTED]. -
Na biblioteca
gestor/bibliotecas/log.php, reforçar a criação de diretórios com0777e aplicar@chmod($path, 0777)/@chmod($myFile, 0666)defensivo para evitar avisos dePermission denied.
-
-
Correção do Scope no
html-editor.php:-
Na função
html_editor_ia_prompt()emgestor/bibliotecas/html-editor.php, corrigir o casodefaultdoswitchsubstituindo a referência incorreta a$modelo_textopor$modoou eliminando o resíduo morto, eliminando oPHP Warning: Undefined variable $modelo_texto.
-
Módulo 4: Auditoria Global de CSRF em global.js e Correções no Editor Visual (admin-paginas)
-
Auditoria e Interceptação Global de CSRF em
gestor/assets/global/global.js:-
Auditar o arquivo
gestor/assets/global/global.js(carregado globalmente em todo o gestor pelogestor.php). -
Garantir que a interceptação global de
$.ajaxSetupewindow.fetchinjete automaticamente o cabeçalhoX-CSRF-Tokenem todas as requisições de modificação de estado (POST, PUT, DELETE), inclusive em contextos de iframe /srcdocdo Editor Visual. -
Implementar helper para anexar automaticamente o input oculto
_gestor-csrf-tokenem formulários submetidos dinamicamente caso o campo esteja ausente.
-
-
Normalização de URL e CSRF na Renderização de Widgets (
renderWidgets):-
No
srcdoc/ iframe do Editor Visual, corrigir a formação de URL da chamada AJAX dorenderWidgetspara eliminar barras duplicadas (evitando rotas comoadmin-paginas/editar//que resultam em403 Forbidden). -
Injetar o cabeçalho
X-CSRF-Token/ parâmetro CSRF em todas as chamadas dorenderWidgetsno iframe do editor.
-
-
Injeção de CSRF no Salvamento do Editor Visual (
previsualizarConfirmar):-
Garantir que o formulário de salvamento e a requisição de confirmação (
previsualizarConfirmar) enviem obrigatoriamente o token CSRF (_gestor-csrf-token/X-CSRF-Token). -
Tratar eventuais falhas de validação CSRF com alertas amigáveis na interface do editor visual, evitando que a tela exiba a resposta crua em JSON
{"status":"error","message":"Token CSRF inválido ou ausente."}.
-
Módulo 5: Injeção de MetaTags OpenGraph e Tratamento de Páginas Protegidas
-
Injeção de OpenGraph em
gestor_pagina_extra_head_e_javascript()(gestor.php):-
Na função
gestor_pagina_extra_head_e_javascript(), injetar as tags<meta property="og:title">,<meta property="og:description">,<meta property="og:image">,<meta property="og:url">,<meta property="og:site_name">e<meta property="og:type">no cabeçalho<head>. -
Se a página não possuir metadados específicos definidos, aplicar fallback gracioso para as variáveis globais de ambiente no
config.php(ex.:SITE_NAMEe banner/logo padrão).
-
-
OpenGraph para Bots em Páginas Protegidas em
gestor_roteador():-
Em
gestor_roteador(), para requisições de crawlers/bots (ex.: WhatsApp) em páginas protegidas por permissão (gestor_acesso()), renderizar o cabeçalho<head>com as tags OpenGraph da página sem redirecionar para/login/, omitindo o conteúdo privado do corpo. -
Para visitantes humanos sem login ativo em páginas protegidas, manter o redirecionamento para
/login/com o parâmetro de retorno (?url=...).
-
Validação e Critérios de Aceite
-
php -lsem erros em todas as bibliotecas e controladores modificados. -
node --checkem scripts JS alterados (especialmenteglobal.js). -
Suíte de testes automatizados (
composer testenpx vitest run) 100% verde.