HTTP 403 “Proibido”: causas, prevenção e correção

Publicados: 2023-09-01
Índice
  • O que é HTTP 403?
  • Causas comuns
  • Diagnosticar
  • Como prevenir
  • Como corrigi-lo
  • Erros relacionados

HTTP 403, significa “Proibido” e indica que a solicitação do cliente é compreendida pelo servidor, mas este se recusa a atendê-la.

Este artigo tem como objetivo esclarecer a essência do HTTP 403, desvendar suas causas comuns, orientar seu diagnóstico e oferecer técnicas de prevenção e resolução.

Também destacaremos os erros relacionados para fornecer uma compreensão abrangente.

O que é HTTP 403?

Erro 403 proibido

HTTP 403 é um código de status que significa “Proibido”. Quando encontrado, informa ao cliente que o servidor compreende a solicitação, mas se recusa a concluí-la.

Ao contrário do status 401 “Não autorizado” , que está relacionado a problemas de autenticação do usuário, o erro 403 indica que a autenticação pode ter sido bem-sucedida, mas o usuário autenticado ainda não possui as permissões necessárias para acessar o recurso solicitado.

Causas comuns

Erros HTTP 403 podem surgir de diversas circunstâncias:

  1. Permissões insuficientes : o usuário pode não ter as permissões necessárias para acessar um recurso específico no servidor.
  2. Restrições geográficas : alguns conteúdos da web podem ser limitados a usuários de regiões ou países específicos.
  3. Bloqueio de IP : Os servidores podem bloquear determinados endereços IP devido a questões de segurança ou atividades suspeitas anteriores.
  4. Regras rígidas de .htaccess : regras incorretas ou excessivamente restritivas no arquivo .htaccess em servidores Apache podem levar a erros 403.
  5. Protocolos de segurança do servidor : alguns servidores podem ter protocolos de segurança que bloqueiam solicitações de determinados agentes de usuário ou navegadores.

Diagnosticar

Para determinar a causa raiz de um erro HTTP 403, considere as seguintes etapas:

  1. URL de revisão : certifique-se de que o URL correto esteja sendo acessado e que não haja erros de digitação.
  2. Inspecione os logs do servidor : os logs do servidor podem fornecer informações sobre o motivo pelo qual uma solicitação específica foi negada.
  3. Verifique o arquivo .htaccess : para sites executados no Apache, a revisão do arquivo .htaccess pode identificar quaisquer regras excessivamente restritivas.

Como prevenir

Evitar erros HTTP 403 envolve etapas proativas para garantir interações suaves entre servidor e cliente:

  1. Revise regularmente as permissões : verifique e ajuste periodicamente as permissões para garantir que os usuários possam acessar os recursos necessários.
  2. Atualize .htaccess com cuidado : Ao modificar o arquivo .htaccess, faça-o com cautela e sempre mantenha backups.
  3. Monitore a segurança do servidor : mantenha-se atualizado sobre os protocolos de segurança do servidor para evitar bloqueios inadvertidos.

Como corrigi-lo

A resolução de um erro 403 depende da sua causa subjacente:

1. Ajuste as permissões

Certifique-se de que as permissões corretas sejam concedidas aos usuários ou diretórios que necessitam de acesso. (consulte Mais informação)

2. Corrigir problemas de .htaccess

  1. Faça backup do seu arquivo .htaccess : Sempre faça um backup do arquivo .htaccess antes de fazer qualquer alteração.
  2. Verifique as diretivas de negação : procure por quaisquer diretivas Deny em seu arquivo .htaccess . Se estiverem presentes, podem estar causando o erro 403. Por exemplo: Order allow,deny Deny from all Para resolver isso, remova a diretiva ou modifique-a para permitir o tráfego desejado.
  3. Proteção por senha : se determinados diretórios forem protegidos por senha usando AuthType , AuthName , AuthUserFile e Require , certifique-se de ter as credenciais corretas para acessá-los. Se não quiser proteção por senha, você pode comentar ou remover essas diretivas.
  4. Permissões de arquivo : embora esta não seja estritamente uma solução .htaccess , certifique-se de que seus arquivos e diretórios tenham as permissões corretas. Para muitos servidores, uma configuração de permissão típica é:
    • Pastas: 755
    • Arquivos: 644
    Permissões incorretas, especialmente para diretórios, podem levar a erros 403.
  5. Listagens de diretórios : se você estiver tentando acessar um diretório que não possui um arquivo de índice (como index.html ou index.php ) e as listagens de diretórios estiverem desativadas, você poderá receber um erro 403. Você também pode:
    • Adicione um arquivo de índice ao diretório.
    • Habilite listagens de diretório com: Options +Indexes
  6. Regras Mod_Rewrite : Se você estiver usando regras mod_rewrite, certifique-se de que elas estejam escritas corretamente. Regras incorretas às vezes podem levar a erros 403. Comente regras específicas para ver se elas são a causa.
  7. Verifique se há restrições de arquivo : Procure regras que restrinjam o acesso com base no nome do arquivo, como: <Files "secretfile.php"> Order allow,deny Deny from all </Files> Ajuste ou remova essas regras conforme necessário.
  8. Certifique-se da sintaxe .htaccess : um arquivo .htaccess gravado incorretamente ou com diretivas inválidas pode causar um erro 403. Certifique-se de que todas as diretivas e sintaxe estejam corretas.

Depois de fazer alterações no arquivo .htaccess , lembre-se de limpar o cache do navegador ou testar usando um navegador diferente para garantir que está vendo o resultado atualizado. Se nenhuma das soluções acima resolver o problema, considere restaurar um backup do arquivo .htaccess de um momento em que você não estava enfrentando o erro 403.

3. Lista de permissões de endereços IP

Se o bloqueio de IP for o culpado, considere colocar o endereço IP em questão na lista de permissões.

Lista de permissões com .htaccess:

  1. Localize regras de bloqueio de IP existentes : procure quaisquer regras existentes em seu arquivo .htaccess que possam estar bloqueando endereços IP. Eles podem ser parecidos com: Order Deny,Allow Deny from all Allow from 123.123.123.123 Neste exemplo, apenas o IP 123.123.123.123 é permitido e todos os outros IPs são negados.
  2. Colocar um endereço IP na lista de permissões : se desejar colocar um endereço IP específico na lista de permissões, você pode adicioná-lo usando a diretiva Allow from : Allow from YOUR.IP.ADDRESS.HERE Substitua YOUR.IP.ADDRESS.HERE pelo endereço IP que deseja colocar na lista de permissões .
  3. Colocar vários endereços IP na lista de permissões: se você tiver vários endereços IP na lista de permissões, poderá adicionar várias diretivas Allow from : Allow from IP.ADDRESS.1 Allow from IP.ADDRESS.2
  4. Coloque um intervalo de IP na lista de permissões : se você tiver um intervalo de endereços IP, poderá usar a notação CIDR ou caracteres curinga: #Using CIDR notation Allow from 123.123.123.0/24 # Using wildcards Allow from 123.123.123.* Ambos os exemplos acima seriam coloque na lista branca todos os endereços IP de 123.123.123.0 a 123.123.123.255 .
  5. Salvar e testar : depois de adicionar as diretivas Allow from necessárias, salve o arquivo .htaccess e tente acessar seu site a partir do endereço IP bloqueado anteriormente. Agora deve estar acessível.
  6. Limpar cache do navegador : sempre limpe o cache do navegador ou use uma janela anônima/privada ao testar para garantir que você está vendo as alterações mais recentes.

Usando iptables :

eu. Faça backup das regras atuais do iptables : Antes de fazer qualquer alteração, é uma boa ideia fazer backup das regras atuais iptables .

 sudo iptables-save > /path/to/backupfile.txt

ii. Coloque um endereço IP na lista de permissões : para permitir todo o tráfego de um endereço IP específico:

 sudo iptables -A INPUT -s YOUR.IP.ADDRESS.HERE -j ACCEPT

Substitua YOUR.IP.ADDRESS.HERE pelo endereço IP que você deseja colocar na lista de permissões.

iii. Salve as alterações : dependendo da sua distribuição, você pode usar:

 sudo service iptables save

Ou:

 sudo iptables-save > /etc/sysconfig/iptables

Usando ufw :

eu. Verifique se o UFW está instalado : Caso contrário, você pode instalá-lo usando o gerenciador de pacotes da sua distribuição, por exemplo:

 sudo apt install ufw # For Ubuntu/Debian sudo yum install ufw # For CentOS (might not be in the default repositories)

ii. Habilitar UFW : Se ainda não estiver habilitado, você pode ativar o UFW com:

 sudo ufw enable

iii. Coloque um endereço IP na lista de permissões : para permitir todo o tráfego de um endereço IP específico:

 sudo ufw allow from YOUR.IP.ADDRESS.HERE

Substitua YOUR.IP.ADDRESS.HERE pelo endereço IP que você deseja colocar na lista de permissões.

4. Verifique as regras : Você pode verificar as regras do UFW com:

 sudo ufw status

4. Procure suporte do provedor de hospedagem : às vezes, entrar em contato com seu provedor de hospedagem pode ajudar a identificar e corrigir problemas específicos do servidor.

Erros relacionados

Para contextualizar ainda mais o HTTP 403, considere estes códigos de status HTTP relacionados:

  1. HTTP 401 (não autorizado) : a solicitação requer autenticação do usuário.
  2. HTTP 402 (pagamento obrigatório) : Reservado para uso futuro, sugere que o pagamento é obrigatório.
  3. HTTP 404 (não encontrado) : O recurso solicitado não está disponível no servidor.

Concluindo, compreender os meandros do código de status HTTP 403 “Proibido” é vital para garantir interações ideais na web. Ao permanecerem informados e proativos, os desenvolvedores e usuários podem navegar por possíveis armadilhas e manter experiências na web perfeitas.