Tengo una serie de páginas en mi sitio web a las que solo los administradores pueden acceder y el acceso a estas páginas se proporciona si se encuentra un valor de cadena de consulta si se encuentra y se establece correctamente. Por ejemplo:
http://www.mydomain.com/show-daily-statistics?key=abc
El enlace anterior mostrará el contenido de la página, pero cualquier otra cosa como la siguiente no:
http://www.mydomain.com/show-daily-statistics
Ahora estaba pensando qué hacer si los motores de búsqueda y / o usuarios que no son administradores de alguna manera llegan a estas páginas ocultas.
Por supuesto, puedo cambiar el código de estado de la página a 404 o, si no, 301 redirigir a:
http://www.mydomain.com/404-error
¿Cuál es la mejor solución con respecto a Google y SEO?
301-redirect
404
WPRookie82
fuente
fuente
Respuestas:
El código correcto sería 401 No autorizado
Según las especificaciones HTTP
10.4.2 401 No autorizado
o alternativamente
10.4.4 403 Prohibido
Ambos son semánticamente más correctos que
404
. El recurso existe, así que404
no es correcto.401
debe ser correcto, pero no necesita autenticación. La seguridad por oscuridad no es seguridad.403
también es correcto a medida que se entiende la solicitud, el recurso existe, solo se niega a atender la solicitud.404
es apropiado si no quieres revelar por qué403
está sucediendo.En cualquier caso, las
301
redirecciones no son apropiadas, el recurso no se ha movido.fuente
Dado que esta es una página para administradores, con o sin el parámetro "clave", las páginas no pueden ni deben indexarse. Por lo tanto, la página web para usuarios que no son administradores puede enviar un código de estado 404 y puede dejar la misma URL intacta. No redirija, ya que le dice a Google que la página se ha movido, pero luego a una página que no existe.
Así es como Google lo hace también. Vea lo que sucede cuando va a una página ficticia: http://www.google.com/analytics/asdsas
fuente
http://www.example.com/404-error
Existe una pequeña corrección a mi publicación anterior, es una especie de página 404 global de todo el sitio web, por lo que no estaría redirigiendo a una página que no existe.El código de respuesta HTTP semánticamente correcto para esta situación sería 403 Prohibido :
(Aunque la definición de la respuesta 403 dice que "la autorización no ayudará", en mi opinión, esto debe entenderse que se refiere específicamente a la autenticación HTTP Basic / Digest , para lo cual se debe usar el código de estado 401 No autorizado en su lugar. Ya que no está usando cualquiera de esos métodos de autenticación, 403 es el código de estado apropiado en su caso).
Sin embargo, el uso de un código de estado 403 revela (o al menos fuertemente implica) el hecho de que no es una página con URL que, a pesar de que el servidor se niega a entregarlo. Como esto es algo que es posible que desee ocultar a posibles intrusos, el estándar HTTP / 1.1 permite explícitamente que se devuelva el código de estado 404 No encontrado ( énfasis mío):
Por supuesto, para que esta ocultación sea efectiva, la página de error 404 que devuelva debe ser idéntica a la que devuelve para las páginas inexistentes reales . De lo contrario, solo engañará a los atacantes más tontos y casuales. (Si su objetivo es mantener las páginas fuera del índice de Google, una respuesta 403 también lo hará).
¿Qué pasa con las otras posibles respuestas sugeridas en su pregunta y las otras respuestas?
Como señalé anteriormente, no creo que una respuesta 401 sea apropiada aquí. Se puede trabajar en la práctica, en la medida en la mayoría de los navegadores y motores de búsqueda tratará cualquier malformación o no reconocida 4 xx código de respuesta serie como si se tratara de un 404, pero todavía no es válida de acuerdo con los protocolos HTTP especificación, y no hay ninguna razón práctica para preferirlo más de 403 o 404.
En cuanto al uso de una redirección 301 (o 302) a una página separada de "error 404", esa es una práctica horrible difundida por tutoriales mod_rewrite descuidados, y no tiene absolutamente ninguna función de canje en comparación con devolver una respuesta 404 directamente:
Es confuso para los visitantes, ya que la URL que intentaban visitar se reemplaza por la URL de la página de error. Por lo tanto, ven un mensaje que dice que han llegado a una página inexistente, pero no hay una indicación fácilmente visible de cuál era la página que intentaban visitar, por lo que no pueden intentar fácilmente ninguna estrategia de recuperación como corregir cualquier error obvio en la URL, o copiarlo y pegarlo en Google o en la Máquina Wayback.
Puede confundir a los motores de búsqueda, especialmente si su página 404 no está permitida en robots.txt , o si devuelve incorrectamente una respuesta 200 OK en lugar de un código de estado 404 real ( "404 suave" ), lo que podría hacer que su página 404 aparezca en la búsqueda resultados para términos de búsqueda aleatorios.
Causa (una pequeña cantidad) de carga adicional en sus servidores, aumenta el tiempo de respuesta a los visitantes y posiblemente ralentiza los motores de búsqueda que rastrean su sitio, ya que cada solicitud de una página inexistente (u oculta) ahora implica una ronda HTTP adicional. viaje.
No tiene ningún beneficio de SEO, ya que cualquier "enlace de jugo" de las páginas redirigidas a una página 404 se pierde de todos modos.
(Por supuesto, la situación en la que lo hace quiere utilizar un redireccionamiento 301 en lugar de una respuesta 404 es cuando la página en realidad se ha movido, y se puede redirigir al visitante a su ubicación correcta. Pero eso no es el caso discutido aquí.)
Finalmente, me gustaría hacer eco del sentimiento, expresado en muchos comentarios aquí, de que simplemente "ocultar" sus páginas de administrador de esta manera no es un sustituto adecuado para la autenticación adecuada basada en contraseña . Dicho esto, si ya tiene un sistema de autenticación seguro configurado, ocultar las páginas puede ser útil como una capa adicional, aunque sea bastante débil, en un enfoque de defensa en profundidad .
fuente
Yo usaría una
noindex,nofollow,noarchive
etiqueta en el encabezado de las páginas que desea salir de la búsqueda.Descubrí que la
noarchive
etiqueta tiende a sacar las cosas de la búsqueda bastante rápido, mientras quenoindex
puede impedir que entre en la búsqueda, pero si ya está disponible, entonces debe eliminarla de los resultados de búsqueda.En cuanto a la pregunta de acceso de administrador, los otros chicos aquí ya han dado algunos consejos sobre seguridad que recomendaría consultar.
fuente