403 Forbidden é o servidor dizendo: "entendi exatamente o que você pediu, e me recuso". É um erro 4xx do cliente, mas é sobre permissão, não um erro de digitação, o recurso existe, você só não pode entrar.

403 vs 401: a distinção chave

  • 401 Unauthorized → "Quem é você? Autentique e tente de novo." Logar pode resolver. Veja 401 Unauthorized.
  • 403 Forbidden → "Sei quem você é (ou não importa), e mesmo assim não pode." Logar quase nunca ajuda.

Causas comuns

CausaO que acontece
Permissões de arquivoModo/dono errado no arquivo ou diretório
Regras de acesso.htaccess ou config do servidor negando acesso
Sem indexListagem desabilitada e sem index.html
Bloqueio de IPSeu IP/região está numa lista de negação
WAF / CloudflareUma regra de segurança sinalizou a requisição

Como corrigir, como visitante

  • Revise a URL; limpe cookies e cache; desligue VPN/proxy que possa estar bloqueado; faça login se a página exigir auth.

Como corrigir, como desenvolvedor

  1. Permissões: diretórios 755, arquivos 644; dono correto.
  2. Regras de acesso: revise .htaccess / blocos location do Nginx.
  3. Index: adicione um ou habilite listagem.
  4. IP e WAF: revise allowlists e logs por falsos positivos.
  5. Autorização: confirme que seus checks de role/scope não rejeitam usuários válidos.

Quando um spike de 403 importa

Um 403 é um glitch de permissão. Uma onda de 403 pode significar duas coisas distintas: um deploy que quebrou suas regras de acesso e bloqueia usuários reais, ou um atacante sondando recursos. Acompanhe os códigos de status por endpoint no monitoramento ou nos logs que você já usa, para que um aumento de 403/401 não passe despercebido. Veja o checklist de segurança de APIs. E para barrar a autorização quebrada antes do deploy: o pentester com IA da Nurbak escaneia seu repositório em busca de endpoints sem verificação de auth e outros bugs exploráveis, e pode abrir um PR com a correção. Seu primeiro scan é grátis.

Códigos HTTP relacionados