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
| Causa | O que acontece |
|---|---|
| Permissões de arquivo | Modo/dono errado no arquivo ou diretório |
| Regras de acesso | .htaccess ou config do servidor negando acesso |
| Sem index | Listagem desabilitada e sem index.html |
| Bloqueio de IP | Seu IP/região está numa lista de negação |
| WAF / Cloudflare | Uma 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
- Permissões: diretórios
755, arquivos644; dono correto. - Regras de acesso: revise
.htaccess/ blocoslocationdo Nginx. - Index: adicione um ou habilite listagem.
- IP e WAF: revise allowlists e logs por falsos positivos.
- 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.
