O Erro 403 Proibido é um código de status de resposta HTTP, que indica que o cliente identificado não tem autorização adequada para acessar o conteúdo solicitado. Como acontece com a maioria dos códigos de resposta HTTP, especialmente aqueles que indicam um erro, o aparecimento de um Erro 403 Proibido pode ser um desafio para diagnosticar e resolver adequadamente. Com um conjunto de mais de 50 códigos de status potenciais que representam a relação complexa entre o cliente, um aplicativo da web, um servidor da web e, muitas vezes, vários serviços da web de terceiros, determinar a causa de um código de status específico pode ser um desafio entre os melhores das circunstâncias.
Neste artigo, examinaremos o erro 403 proibido em mais detalhes, observando o que pode causar uma mensagem, junto com algumas dicas para diagnosticar e depurar seu próprio aplicativo para encontrar uma solução. Examinaremos até mesmo vários dos sistemas de gerenciamento de conteúdo (CMSs) mais populares em busca de áreas com problemas em potencial que podem fazer com que seu próprio site gere um erro 403 proibido inesperadamente. Vamos mergulhar!
Servidor ou cliente?
Todos os códigos de status de resposta HTTP que estão na categoria 4xx são considerados respostas de erro do cliente. Esses tipos de mensagens contrastam com os erros na categoria 5xx, como o 502 Bad Gateway Error que vimos na semana passada, que são considerados respostas de erro do servidor. Dito isso, o aparecimento de um erro 4xx não significa necessariamente que o problema está relacionado ao cliente, em que o cliente é o navegador da web ou dispositivo usado para acessar o aplicativo. Muitas vezes, se você está tentando diagnosticar um problema com seu próprio aplicativo, pode ignorar imediatamente a maioria dos códigos e componentes do lado do cliente, como HTML, folhas de estilo em cascata (CSS), JavaScript do lado do cliente e assim por diante. Isso não se aplica apenas a sites da web. Muitos aplicativos de smartphones que possuem uma interface de usuário de aparência moderna são, na verdade, movidos por um aplicativo normal da web nos bastidores; aquele que é simplesmente escondido do usuário.
Por outro lado, isso também não descarta o cliente como a causa real de um Erro 403 Proibido. O cliente pode estar tentando acessar um URL inválido, o navegador pode estar falhando ao enviar as credenciais adequadas ao site e assim por diante. Exploraremos alguns desses cenários (e soluções potenciais) abaixo, mas esteja ciente de que, embora o Erro 403 Proibido seja considerado uma resposta de erro do cliente, isso não significa que podemos excluir o cliente ou o servidor. como o culpado neste cenário. Nesses cenários, o servidor ainda é o objeto de rede que está produzindo o Erro 403 Proibido e retornando-o como o código de resposta HTTP para o cliente, mas pode ser que o cliente esteja causando o problema de alguma forma.
Comece com um backup completo do aplicativo
Como com qualquer coisa, é melhor ter jogado pelo seguro no início do que estragar alguma coisa e vir a se arrepender mais tarde. Como tal, é fundamental que você execute um backup completo de seu aplicativo, banco de dados e assim por diante, antes de tentar quaisquer correções ou alterações no sistema. Melhor ainda, se você tiver a capacidade, crie uma cópia completa do aplicativo em um servidor de teste secundário que não esteja "ativo" ou não esteja de outra forma ativo e disponível ao público. Isso lhe dará um campo de teste limpo com o qual testar todas as possíveis correções para resolver o problema, sem ameaçar a segurança ou santidade de seu aplicativo ativo.
Diagnosticando um Erro 403 Proibido
Conforme mencionado anteriormente, um Erro 403 Proibido indica que o cliente (o navegador, na maioria dos casos) está sendo informado pelo servidor de que não possui a devida autorização para acessar o conteúdo solicitado. Um Erro 403 Proibido normalmente pode ocorrer em um dos dois cenários:
• O cliente enviou suas credenciais de autenticação para o servidor, o servidor confirmou que o cliente está autenticado de forma válida e, ainda assim, o servidor rejeitou o acesso do cliente autorizado ao conteúdo solicitado por algum motivo.
• O conteúdo solicitado é estritamente proibido para todos os clientes, independentemente de autorização. Isso pode ocorrer ao tentar acessar um URL inválido ou proibido que foi explicitamente restringido pelo software do servidor da web. Por exemplo, os servidores Apache normalmente retornam um Erro 403 Proibido quando um cliente tenta acessar uma URL que corresponde a um diretório do sistema de arquivos, uma vez que fornecer acesso direto ao arquivo é geralmente uma falha de segurança.
Solução de problemas no lado do cliente
Visto que o Erro 403 Proibido é um código de resposta de erro do cliente, é melhor começar resolvendo quaisquer problemas potenciais do lado do cliente que possam estar causando esse erro. Aqui estão algumas dicas para experimentar no navegador ou dispositivo que está apresentando problemas.
Verifique o URL solicitado
A causa mais comum de um Erro 403 Proibido é simplesmente inserir um URL incorreto. Conforme discutido antes, muitos servidores da web são fortemente protegidos para impedir o acesso a URLs impróprios aos quais o servidor não está preparado para fornecer acesso. Isso pode ser qualquer coisa, desde tentar acessar um diretório de arquivos por meio de uma URL até tentar obter acesso a uma página privada destinada a outros usuários. Portanto, é uma boa ideia verificar novamente o URL exato que está retornando o erro 403 Forbidden Error para ter certeza de que é o recurso exato que você pretende solicitar.
Limpar Cookies Relevantes
Como você já deve saber, os cookies HTTP são pequenos pedaços de dados armazenados em seu dispositivo local, que são usados por sites e aplicativos como um mecanismo para “lembrar” de informações sobre este navegador e / ou dispositivo específico. A maioria dos aplicativos da web modernos aproveita os cookies para armazenar o status de autenticação do usuário, que podem ser usados para informar facilmente ao aplicativo da web qual usuário está ativo no momento e que tipo de autorização o cliente (navegador) atual deve receber.
Assim, quando ocorre um Erro 403 Proibido - o que geralmente indica que o cliente não foi autenticado para realizar a solicitação específica - a primeira consideração deve ser um problema com cookies inválidos ou corrompidos, causando autenticação inadequada para o servidor. Na maioria dos casos, você só precisa se preocupar com os cookies que são relevantes para o site ou aplicativo que está causando o problema. Os cookies são armazenados com base no domínio em que o aplicativo está localizado, portanto, você pode remover explicitamente apenas os cookies que correspondem ao domínio do site (por exemplo, airbrake.io) para manter a maioria dos outros cookies intactos. No entanto, se você não tem experiência com a remoção manual de certos cookies, é muito mais fácil e seguro limpar todos os cookies de uma vez.
A limpeza de cookies pode ser realizada de diferentes maneiras, dependendo do navegador que você está usando:
• Google Chrome
• Internet Explorer
• Microsoft borda
• Mozilla Firefox
• Safari
Limpe o Cache
Assim como os cookies, também é possível que o cache do navegador local esteja causando o aparecimento do Erro 403 Proibido. Cache é apenas um conjunto de armazenamento dedicado a reter cópias locais de conteúdo da web em seu dispositivo para uso posterior. O cache de um navegador pode incluir praticamente qualquer tipo de dados, mas normalmente é usado para armazenar instantâneos compactados de páginas da web que você visita com frequência, incluindo imagens e outros dados binários que seu navegador acessa com frequência. Com uma cópia local desses recursos em seu dispositivo, seu navegador não precisa gastar tempo ou largura de banda para baixar explicitamente esses dados idênticos toda vez que você retornar à mesma página. Por exemplo, toda vez que você abre o Facebook, uma grande parte da página que você está vendo já foi carregada durante uma visita anterior e esse conteúdo foi armazenado em cache e armazenado em seu dispositivo local.
o conteúdo foi armazenado em cache e armazenado em seu dispositivo local.
Como o cache do seu navegador armazena cópias locais de conteúdo e recursos da web, é possível que uma alteração na versão ativa do seu aplicativo esteja em conflito com a versão em cache que já está no seu dispositivo, o que às vezes pode produzir um Erro 403 Proibido como resultado. Tente limpar o cache do navegador para ver se isso corrige o problema.
Assim como acontece com os cookies, a limpeza do cache depende do navegador, então aqui estão alguns links para a documentação relevante para os navegadores mais populares:
• Google Chrome
• Internet Explorer
• Microsoft borda
• Mozilla Firefox
• Safari
Logout e login
Se o aplicativo que você está usando tiver alguma forma de autenticação de usuário, a última etapa do lado do cliente a tentar é fazer logout e, em seguida, fazer login novamente. Se você limpou recentemente os cookies do navegador, isso geralmente deve desconectá-lo automaticamente no da próxima vez que você tentar carregar a página, sinta-se à vontade para tentar fazer o login novamente neste ponto, para ver se as coisas estão funcionando novamente. Em algumas situações, o aplicativo pode estar tendo um problema com a sessão anterior, que é apenas uma string que o servidor envia ao cliente para identificar esse cliente durante solicitações futuras. Tal como acontece com outros dados, o token de sessão (ou sequência de sessão) é armazenado localmente no seu dispositivo nos cookies e é transferido pelo cliente para o servidor durante cada solicitação. Se o servidor não reconhecer o token de sessão enviado pelo cliente, ou se algo deu errado com o servidor que indica que o token específico é inválido, você pode ver um Erro 403 Proibido como resultado.
Para a maioria dos aplicativos da web, o logoff e o logon novamente forçam a recriação do token de sessão local.
Depurando plataformas comuns
Se você estiver executando pacotes de software comuns no servidor que está respondendo com o erro 403 Forbidden, convém começar examinando primeiro a estabilidade e a funcionalidade dessas plataformas. Os sistemas de gerenciamento de conteúdo mais comuns - como WordPress, Joomla! E Drupal - são normalmente bem testados fora da caixa, mas assim que você começar a fazer modificações nas extensões subjacentes ou no código PHP (a linguagem em que quase todo o gerenciamento de conteúdo moderno sistemas são escritos), é muito fácil causar um problema imprevisto que resulta em um Erro 403 Proibido.
Aqui estão algumas dicas para ajudá-lo a solucionar alguns dessas plataformas de software populares:
Reverter atualizações recentes
Se você atualizou recentemente o próprio sistema de gerenciamento de conteúdo pouco antes do aparecimento do Erro 403 Proibido, você pode querer reverter para a versão anterior que você instalou quando as coisas estavam funcionando bem. Da mesma forma, quaisquer extensões ou módulos que você possa ter atualizado recentemente também podem causar problemas do lado do servidor, portanto, reverter para as versões anteriores também pode ajudar. Para obter ajuda com esta tarefa, simplesmente Google “faça downgrade de [PLATFORM_NAME]” e siga em frente. Em alguns casos, no entanto, alguns CMSs não fornecem realmente um recurso de downgrade de versão, o que indica que eles consideram o aplicativo base, junto com cada nova versão lançada, extremamente estável e livre de bugs. Este é normalmente o caso das plataformas mais populares, então não tenha medo se você não conseguir encontrar uma maneira fácil de reverter a plataforma para uma versão mais antiga.
Desinstalar novas extensões, módulos ou plug-ins
Dependendo do sistema de gerenciamento de conteúdo específico que seu aplicativo está usando, o nome exato desses componentes será diferente, mas eles têm a mesma finalidade em todos os sistemas: melhorar os recursos e recursos da plataforma além do que normalmente é capaz de fora da caixa . Mas esteja avisado: tais extensões podem, mais ou menos, assumir o controle total do sistema e fazer praticamente qualquer alteração, seja no código PHP, HTML, CSS, JavaScript ou banco de dados. Como tal, pode ser aconselhável desinstalar quaisquer novas extensões que possam ter sido adicionadas recentemente. Mais uma vez, Google o nome da extensão para a documentação oficial e assistência com este processo.
Verifique se há mudanças inesperadas no banco de dados
É importante notar que, mesmo se você desinstalar uma extensão através do painel do CMS, isso não garante que as alterações feitas pela extensão foram totalmente revertidas. Isso é particularmente verdadeiro para muitas extensões do WordPress, que recebem carta branca no aplicativo, incluindo direitos de acesso total ao banco de dados. A menos que o autor da extensão codifique explicitamente essas coisas, existem cenários em que uma extensão pode modificar os registros do banco de dados que não "pertencem" à própria extensão, mas são criados e gerenciados por outras extensões (ou até mesmo pelo próprio CMS de base). Nesses cenários, a extensão pode não saber como reverter as alterações nos registros do banco de dados, por isso irá ignorar essas coisas durante a desinstalação. Diagnosticar esses problemas pode ser complicado, mas eu pessoalmente encontrei esses cenários várias vezes, então seu melhor curso de ação, supondo que você esteja razoavelmente convencido de que uma extensão é o provável culpado pelo erro 403 Forbidden, é abrir o banco de dados e manualmente verifique as tabelas e registros que provavelmente foram modificados pela extensão.
Confirme as permissões de arquivo adequadas
Se o aplicativo estava funcionando bem antes e de repente esse erro ocorrer, as permissões não são um culpado muito provável. No entanto, se as modificações foram feitas recentemente (como atualizações ou instalações), é possível que as permissões do arquivo tenham sido alteradas ou estejam incorretas, o que poderia causar um problema se propagando por todo o aplicativo e, eventualmente, levar a um Erro 403 Proibido. A grande maioria dos servidores usa sistemas operacionais baseados em Unix, então dê uma olhada aqui, ou em outro lugar na web, para obter mais informações sobre como configurar permissões adequadas para arquivos e diretórios de aplicativos para manter a segurança, ao mesmo tempo que permite o acesso de seu aplicativo onde ele necessário.
Acima de tudo, o Google é seu amigo. Não tenha medo de pesquisar termos específicos relacionados ao seu problema, como o nome do CMS do seu aplicativo, junto com o erro 403 Forbidden. Provavelmente, você encontrará alguém (ou, talvez, muitos alguéns) que passou por esse problema e, potencialmente, recebeu uma solução.
Solução de problemas no lado do servidor
Se você não estiver executando um aplicativo CMS - ou mesmo se estiver, mas tiver certeza de que o Erro 403 Proibido não está relacionado a isso - aqui estão algumas dicas adicionais para ajudá-lo a solucionar o que pode estar causando o problema no servidor -lado das coisas.
Verifique a configuração do seu servidor web
A maioria dos servidores web modernos fornece um ou mais arquivos de configuração que permitem ajustar facilmente o comportamento do servidor, com base em uma ampla gama de circunstâncias. Por exemplo, o servidor pode ser configurado para rejeitar solicitações a determinados diretórios ou URLs, o que pode resultar em um Erro 403 Proibido.
As opções de configuração para cada tipo diferente de servidor da web podem variar drasticamente, portanto, listaremos apenas alguns dos mais populares para fornecer alguns recursos para examinar, dependendo do tipo de servidor em que seu aplicativo está sendo executado: