ryve. Evidência medida em 30/10/2026 · 16:35 UTC

Headers de segurança · auditoria própria

49,7% dos sites de negócios locais não passam em nenhum dos 7 critérios. Os nossos passam nos 7.

Não é auditoria de prateleira: é o mesmo curl que qualquer pessoa roda, antes e depois do deploy, com data e valor de header na mesa. Antes: 3 de 7. Depois: 7 de 7.

Na prática: menos chance de o seu site ser usado para aplicar golpe em quem confia nele, de vazar o caminho de páginas internas e de abrir uma porta para script de terceiro.

O número de 49,7% vem do estudo da RackCrunch publicado em setembro de 2026: 2.331 de 4.688 domínios de negócios locais listados no diretório Curlie (EUA) não atendiam a nenhum dos sete critérios de header. Escopo e ressalvas no rodapé desta página.

Brandt Vistorias

3/77/7

brandtvistorias.com.br

BONI Marido de Aluguel

3/77/7

bonimaridodealuguel.com.br

Esta página

7/7

ryve-oferta.pages.dev

O que estava faltando, header por header

Medição em 30/10/2026, antes do deploy, no domínio próprio. Três critérios já passavam (HSTS, nosniff e Referrer-Policy). Quatro não existiam.

CritérioAntesDepois
Strict-Transport-Security presente
max-age=15552000; includeSubDomains
180 dias
1 ano
max-age=31536000; includeSubDomains
critério de strong HSTS do estudo
Content-Security-Policy ausente aplicada
default-src 'self' · script-src 'self' + GA4 · frame-ancestors 'none' · object-src 'none'
valor completo no bloco de prova abaixo
X-Content-Type-Options nosniff nosniff
X-Frame-Options / frame-ancestors ausente DENY
X-Frame-Options: DENY + frame-ancestors 'none'
Referrer-Policy strict-origin-when-cross-origin strict-origin-when-cross-origin
Permissions-Policy ausente declarada
9 features desligadas: camera, microphone, geolocation, payment, usb, accelerometer, gyroscope, magnetometer, browsing-topics
Cross-Origin-Opener-Policy ausente same-origin
A soma dos critérios atendidos é 3/7 antes e 7/7 depois. O HSTS já vinha da configuração da zona Cloudflare, não do deploy: estava em 180 dias e foi elevado para 1 ano na zona — é o único critério que não vive no repositório.

O que cada um impede, em uma frase

Header de segurança não é selo: é comportamento de navegador. Cada linha abaixo é uma coisa que o site deixa de aceitar.

Content-Security-Policy

Limita de onde scripts, estilos e conexões podem vir. Sem ela, um script injetado em qualquer campo roda com a mesma permissão do site.

X-Frame-Options / frame-ancestors

Impede que o site seja carregado dentro de um iframe alheio — o mecanismo do clickjacking, que faz o visitante clicar sem saber no quê.

Strict-Transport-Security

Obriga o navegador a falar HTTPS com o domínio por um período fixo, inclusive antes de qualquer requisição HTTP acontecer.

X-Content-Type-Options

Mata o "MIME sniffing": o navegador para de adivinhar o tipo de um arquivo e passa a respeitar o que o servidor declarou.

Referrer-Policy

Controla o que a URL do seu site entrega ao site seguinte. Sem política, caminhos internos podem vazar no referrer.

Permissions-Policy

Desliga por padrão câmera, microfone, geolocalização, pagamento e sensores para o site e para qualquer iframe embutido nele.

Cross-Origin-Opener-Policy

Isola a janela do site de janelas de outra origem — impede que a página aberta segure referência à sua e leia o que não devia.

A prova, crua

Dois comandos. Qualquer pessoa com terminal reproduz — não tem painel, não tem nota de fornecedor no meio.

Antes do deploy — 30/10/2026, 13:24 BRT

$ curl -sI https://brandtvistorias.com.br | grep -iE "^(strict|x-content|x-frame|referrer|permissions|cross-origin|content-security)"
strict-transport-security: max-age=15552000; includeSubDomains
x-content-type-options: nosniff
referrer-policy: strict-origin-when-cross-origin
# 4 critérios ausentes: CSP, X-Frame-Options/frame-ancestors, Permissions-Policy, COOP

Depois do deploy — 30/10/2026, 16:34 UTC

$ curl -sI https://brandtvistorias.com.br | grep -iE "^(strict|x-content|x-frame|referrer|permissions|cross-origin|content-security)"
strict-transport-security: max-age=31536000; includeSubDomains
content-security-policy: default-src 'self'; script-src 'self' https://www.googletagmanager.com https://static.cloudflareinsights.com; style-src 'self' 'unsafe-inline'; font-src 'self'; img-src 'self' data: blob: https://*.google-analytics.com https://www.googletagmanager.com; connect-src 'self' https://*.google-analytics.com https://*.analytics.google.com https://*.googletagmanager.com https://cloudflareinsights.com; frame-ancestors 'none'; base-uri 'self'; form-action 'self'; object-src 'none'; upgrade-insecure-requests
x-content-type-options: nosniff
x-frame-options: DENY
referrer-policy: strict-origin-when-cross-origin
permissions-policy: camera=(), microphone=(), geolocation=(), payment=(), usb=(), accelerometer=(), gyroscope=(), magnetometer=(), browsing-topics=()
cross-origin-opener-policy: same-origin
# 7 de 7. GA4 continua carregando só depois do aceite do banner.

Os headers são servidos pelo edge a partir do arquivo _headers versionado no repositório — não foram digitados no painel. Isso importa: configuração que vive só no painel não sobrevive à próxima pessoa que mexer no projeto.

Quer o mesmo diagnóstico no seu site?

Trinta minutos e você recebe a lista do que falta, com o curl de antes e depois. Sem relatório de 40 páginas e sem nota inventada.

  1. Medição. Rodamos os sete critérios no seu domínio e nos subdomínios que importam, com o comando e a data registrados.
  2. Correção no deploy. Os headers entram versionados no build, com CSP ajustada ao que o site realmente carrega — fonte, analytics, mapa, formulário.
  3. Prova. Você recebe o antes/depois em página como esta, mais o teste que garante que nada quebrou: página renderiza, analytics dispara, WhatsApp abre.
Pedir diagnóstico no WhatsApp

Resposta no mesmo dia útil. Se o seu site já estiver 7/7, a gente fala isso e não cobra nada.