HTTP 403 Forbidden

Acesso negado: o servidor compreendeu a requisição e deliberadamente se recusa a atendê-la.

O que significa o HTTP 403

HTTP 403 Forbidden significa que o servidor sabe o que você pediu e recusa. Diferente do 401, autenticar-se (novamente) não vai ajudar — a recusa é sobre permissões ou política, não identidade.

As razões vão desde permissões do sistema de arquivos no servidor, até bloqueios de geo/IP, até um firewall de aplicação web decidindo que a requisição parece maliciosa. Alguns sites também retornam 403 em vez de 404 para ocultar se um recurso existe.

Causas comuns de erros 403

  • Direitos insuficientes: a conta não tem a função ou o arquivo não tem permissões de leitura (chmod/proprietário no servidor).
  • Endereço IP, país ou user-agent bloqueado pelo servidor, CDN ou regra de WAF.
  • Listagem de diretório solicitada onde o autoindex está desativado (sem index.html na pasta).
  • Proteção contra hotlinking rejeitando requisições com um Referer estrangeiro.
  • Um desafio do Cloudflare ou outro WAF falhou — tráfego automatizado frequentemente vê 403 aqui.

Como corrigir como usuário

  • Verifique se você está conectado a uma conta que realmente tem acesso.
  • Tente sem VPN ou proxy — seu IP de saída pode estar bloqueado.
  • Se você é o dono do conteúdo, verifique as permissões de arquivo e regras de .htaccess/WAF em vez de tentar novamente.

Como corrigir como desenvolvedor

  • Verifique a propriedade e as permissões de arquivo (por exemplo, 644 para arquivos / 755 para diretórios em servidores web típicos).
  • Revise regras de negação: .htaccess, diretivas deny do nginx, plugins de segurança, regras gerenciadas de WAF.
  • Garanta que um documento de índice exista ou ative/desative explicitamente a listagem de diretório conforme pretendido.
  • Para APIs, retorne 403 com um motivo legível por máquina para que os clientes possam distinguir política de falhas de autenticação.

Exemplo de resposta

HTTP/1.1 403 Forbidden
Content-Type: application/json

{"error":"forbidden","reason":"account lacks role: admin"}

Perguntas frequentes

Qual é a diferença entre 403 e 401?

401 pede para você se autenticar; 403 diz que autenticar não vai mudar a resposta — você simplesmente não tem permissão.

Por que um bot ou script recebe 403 enquanto um navegador funciona?

Uma camada de WAF ou proteção contra bots está filtrando tráfego que não é de navegador. Identifique-se corretamente ou use a API oficial do site.

Um 403 pode ser retornado em vez de 404?

Sim — alguns servidores ocultam a existência de recursos respondendo 403 (ou 404) uniformemente para qualquer coisa não autorizada.