👁️ Auditoria Portal 4tex

https://portal.4tex.com.br — Análise completa de segurança, QA e UX
17 de fevereiro de 2026 • por Zoio
4
Critical
3
High
4
Medium
3
Low
14
Total Bugs

🔴 Vulnerabilidades Critical

1. API Supabase completamente aberta — vazamento total de dados CRITICAL SECURITY
A anon key do Supabase está exposta no JavaScript do frontend. Usando essa chave, qualquer pessoa na internet pode acessar diretamente a API REST e extrair dados sensíveis de TODOS os 27 usuários sem nenhuma autenticação.

⚠️ Dados expostos publicamente:

  • 27 perfis completos — nome, email, telefone, WhatsApp, data de nascimento, cargo, role
  • Empresas — CNPJ, razão social, cidade, estado
  • Máquinas — catálogo com preços internos (base_price, programmed_price)
  • Team members — telefones e dados de contato da equipe
  • Pending users — usuários aguardando aprovação
  • Calendar events — eventos internos do calendário
  • Branches — dados de filiais
  • Calculator config — configurações internas de calculadoras
  • Lotes — dados de lotes de tintas
Endpoint: https://cfrvopucfkfepdhgungr.supabase.co/rest/v1/
Reprodução:
  1. Extrair anon key do JS bundle (/_next/static/chunks/1d512f03c78abcbb.js)
  2. Fazer GET em /rest/v1/profiles?select=* com header apikey
  3. Todos os dados retornam sem autenticação
curl "https://cfrvopucfkfepdhgungr.supabase.co/rest/v1/profiles?select=full_name,email,phone,whatsapp,birthday,role" \
  -H "apikey: eyJhbGci..." -H "Authorization: Bearer eyJhbGci..."
Correção: Configurar Row Level Security (RLS) no Supabase para TODAS as tabelas. Profiles, companies, machines, team_members devem exigir autenticação. Dados sensíveis (telefone, CPF, birthday) devem ser acessíveis apenas ao próprio usuário e admins.
2. Swagger/OpenAPI do Supabase expõe esquema completo do banco CRITICAL SECURITY
O endpoint /rest/v1/ retorna o schema OpenAPI completo com todas as 123 tabelas, suas colunas e relacionamentos. Isso dá a um atacante o mapa completo do banco de dados.
123 tabelas expostas incluindo: profiles, admin_users, audit_log, notification_log, machines, companies, market_insights, kpis, etc.
Correção: Desabilitar o endpoint OpenAPI em produção ou restringir acesso apenas a usuários autenticados via Supabase Dashboard → API Settings.
3. Preços internos de máquinas expostos na API CRITICAL SECURITY
A tabela machines está acessível sem autenticação e expõe preços internos: base_price, programmed_price, percentuais de entrada e margens. Informação comercial altamente sensível.

Exemplo de dados vazados:

PrismaTex 1.9m → base_price: R$ 55.851,15 / programmed: R$ 47.473,48
MTRE 1602     → base_price: R$ 69.813,94 / programmed: R$ 59.341,85
min_entry_percent: 39% / entry splits: 15%, 15%, 10%
Correção: RLS na tabela machines. Preços internos NUNCA devem ser públicos. Separar preço de venda (público) de custo interno (admin only).
4. Dados pessoais de 27 funcionários expostos (violação LGPD) CRITICAL LGPD
Telefones pessoais, WhatsApp, datas de nascimento, endereços e emails de 27 colaboradores estão acessíveis publicamente via API. Isso constitui violação direta da Lei Geral de Proteção de Dados (LGPD).
Dados expostos por pessoa:
  1. Nome completo, email corporativo
  2. Telefone pessoal e WhatsApp
  3. Data de nascimento
  4. Cargo e role no sistema
  5. ID interno (UUID), avatar URL
  6. Token de calendário iCal (permite acesso ao calendário!)
Correção urgente: Implementar RLS imediata em profiles. Tokens de calendário são especialmente perigosos — permitem acesso externo ao calendário de cada funcionário.

🟠 Bugs High

5. HSTS desabilitado (max-age=0) HIGH SECURITY
O header Strict-Transport-Security está configurado com max-age=0, o que efetivamente desabilita HSTS. Isso permite ataques de downgrade HTTPS → HTTP (man-in-the-middle).
Header: strict-transport-security: max-age=0; includeSubDomains
Correção: Alterar para max-age=31536000; includeSubDomains; preload no Cloudflare ou no servidor.
6. Headers de segurança ausentes HIGH SECURITY
Nenhum dos headers de segurança padrão está presente:
HeaderStatusRisco
Content-Security-Policy❌ AusenteXSS, injeção de scripts
X-Frame-Options❌ AusenteClickjacking
X-Content-Type-Options❌ AusenteMIME sniffing
Referrer-Policy❌ AusenteVazamento de URLs
Permissions-Policy❌ AusenteAbuso de APIs do browser
X-XSS-Protection❌ AusenteXSS em browsers legados
Correção: Adicionar todos os headers via Cloudflare Workers, next.config.js ou middleware do Next.js.
7. iCal tokens expostos permitem acesso a calendários pessoais HIGH SECURITY
Cada perfil de usuário contém um campo ical_feed_token (UUID) que provavelmente permite acesso ao feed iCal do calendário do funcionário. Com esse token, um atacante pode monitorar a agenda de qualquer funcionário.
Ex: ical_feed_token: "337dea0c-5062-4432-a59b-8b5811f67ac1"
Correção: Nunca expor tokens de calendário via API pública. Filtrar esse campo no RLS.

🟡 Bugs Medium

8. 48% dos usuários sem termos aceitos MEDIUM COMPLIANCE
13 de 27 usuários (48%) não aceitaram os termos de uso. O portal lida com dados sensíveis (inteligência de mercado, preços, dados pessoais) sem garantia legal de que os usuários concordaram com os termos.
Correção: Forçar aceite de termos no login antes de acessar qualquer funcionalidade.
9. CPF solicitado no cadastro de cliente sem necessidade clara MEDIUM LGPD
O formulário de registro como "Sou Cliente" solicita CPF com a justificativa "para convites VIP em feiras". CPF é dado sensível e sua coleta sem necessidade comprovada viola o princípio de minimização da LGPD.
/registro/ → Sou Cliente → campo CPF
Correção: Tornar CPF opcional ou coletá-lo apenas quando necessário (ex: emissão de NF).
10. Inteligência de Mercado possivelmente sem controle de acesso MEDIUM SECURITY
A área de Inteligência de Mercado contém dados confidenciais sobre preços de concorrentes, leads e pesquisas. Apesar do aviso "Confidencial — uso exclusivo em planejamento estratégico", verificar se todos os perfis (colaborador, representante) têm acesso.
/dashboard/inteligencia-mercado/
11. KPIs financeiros visíveis para todos os perfis MEDIUM SECURITY
Dashboard de KPIs mostra faturamento mensal (R$ 2.5M), ticket médio, metas de vendas, NPS score e market share. Verificar se todos os colaboradores devem ter acesso a esses dados financeiros.
/dashboard/kpis/

🔵 Bugs Low

12. CSS preload warnings massivos (performance) LOW PERFORMANCE
8+ CSS chunks são preloaded via <link rel="preload"> mas não utilizados, gerando dezenas de warnings no console em toda navegação. Impacta performance e bandwidth.
Todas as páginas — console do DevTools
13. Bottom nav sobrepõe conteúdo em mobile LOW UX
A barra de navegação inferior (Voltar, Início, Calendário, Timer, Cartão) sobrepõe conteúdo da página em diversas telas, especialmente Chamados, Feedback, TCO e Tabela Máquinas.
Correção: Adicionar padding-bottom: 80px no container principal.
14. Blog com artigos desatualizados (2021-2022) LOW UX
A seção "4tex Mag" na home mostra artigos de 2021-2022 ("O que esperar de 2022?", "outono/inverno 2022"). Passa impressão de portal abandonado e compromete a credibilidade.
Home → seção "4tex Mag"

🏗️ Infraestrutura Detectada

ComponenteTecnologiaObservação
FrontendNext.js (Turbopack)SSR + SPA, React Server Components
Backend / DBSupabase (PostgreSQL 14.1)cfrvopucfkfepdhgungr.supabase.co
CDN / ProxyCloudflareCF-Ray GRU (São Paulo)
AnalyticsGoogle Analytics 4G-PS6EEK989K
FontsAdobe Typekit + Font Awesome 6.5
AuthSupabase AuthEmail/senha + Google OAuth
BlockchainEthereum (TEX COIN)Contrato: 0xb757B7b...

📊 Resumo de Dados Expostos

TabelaRegistrosDados SensíveisRisco
profiles27Email, telefone, WhatsApp, CPF, nascimento, iCal tokenCRITICAL
machines10+Preços internos, margens, configurações comerciaisCRITICAL
companies1+CNPJ, razão social, endereçoHIGH
team_members_public10+Telefone, email, cargo de membros da equipeHIGH
pending_users2+Email, nome de usuários pendentesMEDIUM
calendar_events10+Eventos internos, feriados, agendaMEDIUM
branches3+Dados de filiaisLOW
lotes10+Lotes de tintas, datas de validadeLOW
calculator_config5+Configs internas de calculadorasLOW

Total de tabelas no schema: 123. A maioria retorna vazio para anon key, mas o schema completo é visível.

✅ Pontos Positivos

  1. Design visual excelente — Dark theme consistente, UI polida e moderna
  2. Mobile-first — Responsivo, bottom nav, touch-friendly
  3. Funcionalidades robustas — 6 calculadoras, TCO, financiamento, timer, KPIs, NPS
  4. Rewards com crypto — TEX COIN na Ethereum, inovador
  5. Inteligência de mercado — Ferramenta estratégica bem pensada
  6. Feedback trimestral estruturado — 5 atividades, rascunho, progresso
  7. Tabela de máquinas com simulador — Cálculo de financiamento completo
  8. Consulta de estoque — Filtros por modelo, embalagem, cor
  9. Timer de atividades — 4 tipos, estatísticas, cronômetro
  10. Classificados — Marketplace interno para equipamentos usados

🚨 Ações Prioritárias

#AçãoPrioridadeEsforço
1Ativar RLS em TODAS as tabelas do SupabaseURGENTE4-8h
2Filtrar campos sensíveis (telefone, CPF, iCal token) no RLSURGENTE2-4h
3Desabilitar endpoint OpenAPI em produçãoURGENTE30min
4Separar preços internos de máquinas em tabela admin-onlyURGENTE2h
5Configurar HSTS com max-age=31536000ALTA15min
6Adicionar headers de segurança (CSP, X-Frame, etc.)ALTA1h
7Forçar aceite de termos antes do primeiro acessoMÉDIA2h
8Tornar CPF opcional no cadastro de clienteMÉDIA30min
9Verificar controle de acesso por perfil (KPIs, Intel)MÉDIA4h
10Corrigir CSS preloads desnecessáriosBAIXA1h

🗺️ Áreas Auditadas

ÁreaStatusObservação
Home / Landing✅ OK16 cards, cotações, blog, equipe
Login / Auth✅ OKEmail/senha + Google OAuth funcional
Registro⚠️ MediumCPF desnecessário, 3 perfis disponíveis
Dashboard✅ OK27 usuários, acesso rápido, visão geral
Calculadora Bobinas✅ OKGramatura, largura, preço — funcional
Chamados✅ OK4 pendentes, categorias comercial/suporte
Consulta Estoque✅ OKFiltros por modelo, embalagem, cor
KPIs⚠️ MediumDados financeiros expostos a todos os perfis
Timer✅ OK4 tipos de atividade, estatísticas
NPS✅ OKEscala 0-10, campos qualitativos
Rewards TEX✅ OKCrypto, MetaMask, contrato Ethereum
TCO Cliente✅ OKCálculo completo de custos
Tabela Máquinas✅ OKFinanciamento, envio de orçamento
Classificados✅ OKMarketplace vazio, filtros funcionais
Inteligência de Mercado⚠️ MediumDados confidenciais, verificar acesso
Feedback✅ OKQ1-2026, 5 atividades
Admin Usuários✅ OK27 usuários, perfis, busca
API Supabase🔴 CRITICAL123 tabelas expostas, dados vazando
Headers HTTP🟠 HIGHHSTS desabilitado, sem CSP/X-Frame