Eu tenho um número de páginas no meu site que somente administradores podem acessar e acessar a essas páginas, se um valor de string de consulta for encontrado e definido corretamente. Por exemplo:
http://www.mydomain.com/show-daily-statistics?key=abc
O link acima mostra o conteúdo da página, mas qualquer outra coisa como a abaixo não:
http://www.mydomain.com/show-daily-statistics
Agora, eu estava pensando no que fazer se os mecanismos de pesquisa e / ou usuários não administradores de alguma forma aterrissarem nessas páginas ocultas.
É claro que posso alterar o código de status da página para 404 ou redirecionar 301 para:
http://www.mydomain.com/404-error
Qual é a melhor solução em relação ao Google e SEO?
301-redirect
404
WPRookie82
fonte
fonte
Respostas:
O código correto seria 401 Não autorizado
Conforme as especificações HTTP
10.4.2 401 Não autorizado
ou alternativamente
10.4.4 403 Proibido
Ambos são semanticamente mais corretos que
404
. O recurso existe, portanto,404
não está correto.401
deve estar correto, mas você não está exigindo autenticação. Segurança pela obscuridade não é segurança.403
também está correto conforme a solicitação é entendida, o recurso existe, apenas se recusa a atender a solicitação.404
é apropriado se você não quiser revelar por que403
está acontecendo.Em qualquer caso, os
301
redirecionamentos não são apropriados, o recurso não foi movido.fonte
Como esta é uma página para administradores, com ou sem o parâmetro "key", as páginas não podem e não devem ser indexadas. Portanto, a página da Web para não administrador pode enviar o código de status 404 e você pode deixar o mesmo URL intacto. Não redirecione, pois você diz ao Google que a página foi movida, mas depois para uma página que não existe.
É assim que o Google faz isso também. Veja o que acontece quando você acessa uma página fictícia: http://www.google.com/analytics/asdsas
fonte
http://www.example.com/404-error
Existe uma pequena correção no meu post acima, é uma espécie de página 404 global de todo o site, por isso não acabei redirecionando para uma página não existente.O código de resposta HTTP semanticamente correto para essa situação seria 403 Proibido :
(Embora a definição da resposta 403 diga que "a autorização não ajudará", na IMO isso deve ser entendido como uma referência específica à autenticação HTTP Básica / Digest , para a qual o código de status 401 Não Autorizado deve ser usado. Como você não está usando qualquer um desses métodos de autenticação, 403 é o código de status apropriado no seu caso.)
No entanto, usando um código 403 estatuto revela (ou pelo menos implica fortemente) o fato de que não é uma página com essa URL, mesmo que o servidor se recusa a entregá-lo. Como isso é algo que você pode ocultar de possíveis invasores, o padrão HTTP / 1.1 permite explicitamente que o código de status 404 Não encontrado seja retornado ( ênfase minha):
Obviamente, para tornar essa ocultação eficaz, a página de erro 404 que você retornar precisa parecer idêntica à que você retorna para páginas reais inexistentes. Caso contrário, apenas enganará os atacantes mais idiotas e casuais. (Se seu objetivo é apenas manter as páginas fora do índice do Google, uma resposta 403 também fará isso.)
E as outras respostas possíveis sugeridas na sua pergunta e as outras respostas?
Como observei anteriormente, não acredito que uma resposta 401 seja apropriada aqui. Ele pode funcionar na prática, na medida em que a maioria dos navegadores e os motores de busca irá tratar qualquer 4 malformado ou não reconhecida xx código de resposta série como se fosse um 404, mas ainda não é válido de acordo com o HTTP especificação, e não há nenhuma razão prática a preferi-la mais de 403 ou 404.
Quanto ao uso de um redirecionamento 301 (ou 302) para uma página separada "erro 404", essa é uma prática horrível , disseminada por tutoriais desleixados de mod_rewrite, e não possui recursos de resgate em comparação com o retorno direto de uma resposta 404:
É confuso para os visitantes, pois o URL que eles estavam tentando visitar é substituído pelo URL da página de erro. Portanto, eles veem uma mensagem dizendo que chegaram a uma página inexistente, mas não há nenhuma indicação facilmente visível do que a página estava tentando visitar e, portanto, não podem facilmente tentar estratégias de recuperação, como corrigir erros de digitação óbvios no URL, ou copie e cole no Google ou na Wayback Machine.
Isso pode confundir os mecanismos de pesquisa, especialmente se a sua página 404 não for permitida no robots.txt , ou se ela retornar incorretamente uma resposta 200 OK, em vez de um código de status 404 real ( "soft 404" ), potencialmente fazendo com que sua página 404 apareça na pesquisa resultados para termos de pesquisa aleatórios.
Isso causa (uma pequena quantidade de) carga extra em seus servidores, aumenta o tempo de resposta aos visitantes e potencialmente diminui a velocidade dos mecanismos de pesquisa que rastreiam seu site, pois toda solicitação de uma página inexistente (ou oculta) agora envolve um processo HTTP adicional- viagem.
Não possui benefício de SEO, pois qualquer "suco de link" de páginas redirecionadas para uma página 404 é perdido de qualquer maneira.
(Claro, a única situação em que você faz querer usar um redirecionamento 301 em vez de uma resposta 404 é quando a página realmente foi movido, e você pode redirecionar o visitante para sua localização correta. Mas esse não é o caso discutido aqui.)
Por fim, gostaria de ecoar o sentimento, expresso em muitos comentários aqui, de que apenas "ocultar" suas páginas de administração como essa não é um substituto adequado para a autenticação adequada por senha . Dito isto, se você já possui um sistema de autenticação seguro configurado, ocultar as páginas pode ser útil como uma camada extra, embora bastante fraca, em uma abordagem de defesa em profundidade .
fonte
Eu usaria uma
noindex,nofollow,noarchive
tag no cabeçalho das páginas que você deseja sair da pesquisa.Descobri que a
noarchive
tag tende a tirar as coisas da pesquisa bem rápido, enquanto issonoindex
pode impedi-la de entrar na pesquisa, mas se ela já estiver lá, você precisará liberá-la dos resultados da pesquisa.Quanto à pergunta de acesso de administrador, os outros caras aqui já deram alguns conselhos sobre segurança que eu recomendaria conferir.
fonte