Scanner de Segurança

Análise completa de segurança web: DNS, SSL, headers, cookies e mais

Precisa de ajuda com a segurança do seu site?

Nossa equipe pode ajudar a implementar headers de segurança, configurar SSL, e proteger sua aplicação contra ataques.

  • Auditoria completa de segurança
  • Implementação de headers e SSL
  • Monitoramento contínuo
Falar no WhatsAppRespondemos em até 2 horas

FAQ - Security Headers

O que é HSTS (Strict-Transport-Security)?

HSTS: HSTS força navegadores a acessarem o site apenas via HTTPS, protegendo contra ataques man-in-the-middle.

Como funciona: Quando o navegador acessa o site pela primeira vez, recebe esse header e memoriza que deve sempre usar HTTPS nas próximas visitas.

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

Parâmetros:

  • max-age: Tempo em segundos (31536000 = 1 ano)
  • includeSubDomains: Aplica a todos os subdomínios
  • preload: Lista de pré-carregamento HSTS do Chrome
O que é CSP (Content-Security-Policy)?

CSP define de onde o site pode carregar recursos (scripts, imagens, estilos, etc), prevenindo ataques XSS (Cross-Site Scripting).

Por que é importante: Mesmo que um atacante injete código malicioso no seu site, o CSP impede a execução bloqueando recursos não autorizados.

Exemplo básico:

Content-Security-Policy: default-src 'self'; script-src 'self' https://trusted-cdn.com; img-src 'self' data: https:;

Principais diretivas:

  • default-src: Fallback para todas as outras diretivas
  • script-src: De onde pode carregar JavaScript
  • style-src: De onde pode carregar CSS
  • img-src: De onde pode carregar imagens
  • connect-src: Quais URLs pode fazer requisições (fetch, XHR)
O que é X-Content-Type-Options?

X-Content-Type-Options impede navegadores de "adivinhar" o tipo MIME de arquivos, prevenindo ataques baseados em MIME sniffing.

O problema: Navegadores tentam detectar o tipo real de um arquivo mesmo se o servidor enviar Content-Type errado. Isso pode executar JavaScript malicioso disfarçado de imagem.

Configuração (sempre use):

X-Content-Type-Options: nosniff

Com isso, o navegador respeita exatamente o Content-Type enviado pelo servidor.

O que é X-Frame-Options?

X-Frame-Options protege contra clickjacking ao controlar se o site pode ser exibido dentro de iframes.

Ataque clickjacking: Site malicioso carrega seu site num iframe invisível e engana usuário a clicar em botões sensíveis.

Valores possíveis:

  • DENY: Nunca pode ser exibido em iframe (mais seguro)
  • SAMEORIGIN: Apenas iframes do mesmo domínio
  • ALLOW-FROM uri: Apenas domínios específicos (obsoleto)

Recomendação:

X-Frame-Options: DENY
O que é X-XSS-Protection?

X-XSS-Protection é um header legado que ativa filtro anti-XSS em navegadores antigos (IE, Chrome antigo, Safari).

Status atual: Obsoleto. Navegadores modernos removeram esse recurso. Use CSP ao invés.

Configuração recomendada:

X-XSS-Protection: 0

Por quê desabilitar? Bugs no filtro XSS podem criar novas vulnerabilidades. CSP é superior.

O que é Referrer-Policy?

Referrer-Policy controla quanta informação de origem é enviada ao navegar para outros sites, protegendo privacidade dos usuários.

Valores comuns:

  • no-referrer: Nunca envia informação de origem
  • strict-origin-when-cross-origin: Apenas origem em navegação externa (recomendado)
  • same-origin: Só envia para páginas do mesmo domínio
  • no-referrer-when-downgrade: Não envia se HTTPS → HTTP

Exemplo:

Referrer-Policy: strict-origin-when-cross-origin
O que é Permissions-Policy?

Permissions-Policy controla quais recursos sensíveis (câmera, microfone, geolocalização, etc) o site e iframes podem usar.

Por que usar: Previne que scripts maliciosos ou iframes acessem recursos sensíveis sem permissão explícita.

Recursos controláveis:

  • camera: Acesso à câmera
  • microphone: Acesso ao microfone
  • geolocation: Localização GPS
  • payment: API de pagamento
  • usb: Acesso USB

Exemplo:

Permissions-Policy: camera=(), microphone=(), geolocation=(self)
O que são COOP, CORP e COEP?

São headers de isolamento cross-origin que aumentam segurança impedindo ataques baseados em timing e compartilhamento de memória.

COOP (Cross-Origin-Opener-Policy):

Isola janelas abertas com window.open() de diferentes origens, impedindo acesso via JavaScript.

Cross-Origin-Opener-Policy: same-origin

CORP (Cross-Origin-Resource-Policy):

Controla quais sites podem carregar recursos (imagens, scripts, etc) do seu servidor.

Cross-Origin-Resource-Policy: same-origin

COEP (Cross-Origin-Embedder-Policy):

Garante que todos os recursos externos tenham permissão CORS explícita antes de carregar.

Cross-Origin-Embedder-Policy: require-corp

⚠️ Atenção: Esses headers podem quebrar funcionalidades que dependem de recursos cross-origin. Teste antes de aplicar em produção.

Por que meu site tem nota baixa?

A nota é calculada com base nos headers de segurança presentes. Cada header ausente reduz a pontuação.

Prioridade de implementação:

  1. HSTS - Crítico (força HTTPS)
  2. CSP - Crítico (previne XSS)
  3. X-Frame-Options - Alto (previne clickjacking)
  4. X-Content-Type-Options - Alto (previne MIME sniffing)
  5. Referrer-Policy - Médio (privacidade)
  6. Permissions-Policy - Médio (controle de recursos)
  7. COOP/CORP/COEP - Baixo (isolamento avançado)

Dica: Comece implementando os 4 primeiros. Isso já dá nota B+ na maioria dos casos.

Como implementar esses headers no Nginx?

Adicione no arquivo de configuração do site (/etc/nginx/sites-available/seu-site):

# Security Headers add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always; add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline';" always; add_header X-Frame-Options "DENY" always; add_header X-Content-Type-Options "nosniff" always; add_header Referrer-Policy "strict-origin-when-cross-origin" always; add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;

Depois: sudo nginx -t e sudo systemctl reload nginx

Como implementar no Next.js?

Adicione no arquivo next.config.js:

module.exports = { async headers() { return [ { source: '/:path*', headers: [ { key: 'Strict-Transport-Security', value: 'max-age=31536000; includeSubDomains' }, { key: 'X-Frame-Options', value: 'DENY' }, { key: 'X-Content-Type-Options', value: 'nosniff' }, { key: 'Referrer-Policy', value: 'strict-origin-when-cross-origin' } ] } ]; } };
O que é um certificado SSL válido?

Um certificado SSL válido garante que a comunicação entre navegador e servidor é criptografada e autêntica.

Requisitos:

  • Emitido por autoridade certificadora confiável (Let's Encrypt, DigiCert, etc)
  • Não expirado (renove 30 dias antes do vencimento)
  • Corresponde ao domínio do site
  • Protocolo TLS 1.2 ou superior (TLS 1.0/1.1 são inseguros)

Certificado grátis: Use Let's Encrypt com Certbot para renovação automática.

Meu site redireciona HTTP para HTTPS?

O redirecionamento HTTP → HTTPS é essencial para garantir que usuários sempre usem conexão segura, mesmo digitando http://.

No Nginx:

server { listen 80; server_name seu-dominio.com; return 301 https://$server_name$request_uri; }

No Apache:

RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Scanner de Segurança Web Grátis | DERRICO Tools