(Soy consciente de que no se recomienda la seguridad a través de la oscuridad).
Estoy tratando de ocultar el hecho de que estoy usando Wordpress. Esta publicación es útil, pero solo aborda el contenido (más o menos). Estoy interesado en que ocurra lo siguiente:
El usuario intenta acceder a cualquier URL con
wp*
una subcadena a través de su navegador.Resultado: Redirigido a la página 404.
El usuario / administrador del blog sabe que para iniciar sesión deben ir
http://example.com/blogin/
.Resultado: apache los redirige a
http://example.com/wp-admin/
.Si un usuario intenta acceder directamente
wp-admin
desde su navegador, se lo envía al # 1.Resultado: Redirigido a la página 404.
Cosas que he hecho hasta ahora
Noté que, para una instalación predeterminada de WordPress, podía acceder a cualquiera de los
wp*
archivos en el directorio raíz (relativo) de la instalación de WP. Específicamentewp-settings.php
fue problemático porque dio información sobre mi configuración. Si un usuario accede a él, arrojará algunos errores de PHP y revelará parte de la estructura del directorio. Edité mi archivo php.ini paradisplay_errors
desactivar. Ahora el accesohttp://example.com/wp-settngs.php
abre una página en blanco.Esto en sí mismo no es ideal porque revela que
wp-settings.php
existe. De hecho,wp*
es posible acceder a todos los archivos diferentes (con resultados diferentes). Luego pongo lo siguiente en mi archivo htaccess:RewriteEngine On RewriteBase / RewriteCond %{PATH_INFO} wp* [NC] RewriteRule .* - [F]
Esto funcionó muy bien! Cualquier cosa con un
wp*
fue enrutada a mi página 404 personalizada. Pero ahora no puedo acceder a mi página de administrador.He intentado insertar esta línea en el código anterior:
RewriteRule ^blogin wp-admin [NC,R,L]
. Se suponía que debía ser justo después,RewriteBase
pero esto no funcionó.Traté de hacer un:
<Directory /home/example/wp*> Order Allow, Deny Allow from example.com Deny from all </Directory>
esperando que un árbitro de mi sitio (a través de la reescritura de la regla) pueda acceder a wp-admin, pero no a alguien de fuera. Esto tampoco funcionó. Apache se quejó de que no puede usar esta directiva desde htaccess.
He leído la documentación de apache; Entiendo los conceptos, teóricamente, pero necesito ayuda práctica.
EDITAR: Estoy buscando una solución que use .htaccess en lugar de httpd.conf ya que mi configuración particular hace que usar httpd.conf sea inconsistente.
fuente
Respuestas:
TLDR; No es posible ocultar WordPress usando solo directivas en su archivo .htaccess.
Ahora viene una historia de dolor y horror. Nuestro amigo, fbh tenía razón sobre la dificultad de ocultar WordPress, no sería para cobardes de vientre amarillo. Arr! Aquí están los detalles de esta (mala) aventura. ¡Ten cuidado!
Motivación
Soy uno de esos tipos que le gustan las cosas perfectas. Me
paso eltiempo de los residuos sobre-ingeniería de algo para ser el 'camino correcto'. Una de las cosas que no me gustó de la configuración predeterminada de WordPress fue que un usuario podía escribir http://ex.com/wp-settings.php y luego toda esta jerga de php vomitaría por todas partes. Eventualmente pude desactivar los errores a través de PHP, pero eso llevó a un mayor deseo de tener solo cosas que se convirtieron en recursos localizables desde el servidor ... y que todo lo demás se verificaría 404/3 'en nuestra página de búsqueda personalizada. Después de eso, tuve la idea de que me gustaría ocultar completamente el marco subyacente (es decir, WP) ... de todos modos ... si quieres ocultar WP, es posible. Pero es realmente difícil.Pasos para tu perdición
Modifique su configuración de PHP ini adecuadamente. (es decir, desactivar los errores de visualización) Puede pensar que esto es innecesario porque si estamos usando .htaccess para redirigir las cosas, la gente no verá los errores porque no pueden acceder a los recursos que causan el error (lo estoy mirando
wp-settings.php
). Pero podrían producirse errores en las páginas mostradas, por lo que definitivamente querrá eliminarlos. El hecho de que lasWP_*
directivas estén establecidas no significa necesariamente que las cosas funcionarán de la manera que usted piensa que lo harán. Descubrí que en mi servidor tenía que establecer los display_errors en falso PRIMERO, porque WP_DISPLAY_ERRORS asumió que la configuración predeterminada era falsa.Controlar la configuración ini de PHP puede ser algo tan simple como poner una directiva en su archivo .htaccess. O, en mi caso, tan complicado como crear un controlador CGI y luego colocar un archivo php.ini allí. YMMV dependiendo de su configuración.
Elimine todo acceso a archivos / directorios con
wp-
prefijo. La idea es que su implementación de WP sea sobre su contenido, no sobre WP (a menos que esté específicamente enfocado en WP). No tiene sentido que la gente quiera ver lo que http; // ex.com/wp-cron.php tiene ... a menos que no sean buenos. Logré esto a través de esto:Aprenda cómo pasar por mordor Al eliminar todo el acceso a
wp-*
usted, ya no puede obtener acceso a la parte administrativa de WP. Eso realmente apesta. Además de esa decepción, te acabas de dar cuenta de que no sabes lo queRewriteCond %{ENV:REDIRECT_STATUS} ^$
realmente hace. Bueno, lo que intenté hacer es darme una puerta trasera 'secreta' a la página de administración de WP. Usé este código:Entonces, la URL: http://ex.com/mordor debería llevarnos a la página de inicio de sesión. La razón por la que teníamos la
REDIRECT
línea en el paso anterior es que, dado que esta URL se reescribe en unawp-*
URL, no queremos que la primera regla de reescritura la obtenga. Dado que está siendo redirigido internamente,REDIRECT_STATUS
se configurará correctamente y no nos empujará a la tierra 403/4.Eliminar wp-content Wordpress.stackexchange tiene un excelente artículo sobre cómo eliminar wp-content. Tienes que redefinir algunas constantes de WP y eso prácticamente funciona. También debe redirigir todos los accesos desde
wp-content
'cualquiera que sea el contenido'. Esto probablemente no será un problema si se trata de una implementación limpia. Si está modificando una implementación preexistente, tendrá que hacer algunas cosas adicionales.Reescribe las URL en wp-content opcional
RewriteRule (.*)(wp-content)(.*) $1whatever-content$3 [NC,R,L]
. Esto va en su archivo .htaccess. Si su usuario intenta acceder a algún contenido antiguo a través de unawp-content
URL, será redirigido aquí.Grep y reemplace todas las referencias a wp-content en su base de datos opcional . Todavía tienes
wp-content
en tu base de datos. Si quieres liberar WP necesitas deshacerte de esas cosas. Exporté / mysql volcó mi base de datos, hice una búsqueda y reemplazo en lawp-content
cadena a la nueva cadena. Podrías decir ... ¿por qué tengo que hacer esto si Apache reescribirá mis URL? El problema es que el código fuente contendrá estas referencias, por lo que si realmente está interesado en ocultar WordPress, debe hacerlo. Nota: En este punto, debería haberme detenido y aceptado la realidad de que esto no iba a funcionar. Pero quería que el Sr. T se compadeciera de mí.Vuelva a colocar todas las referencias a
wp-includes
ywp-admin
en la fuente. Gran parte de la funcionalidad de WordPress depende de estos dos directorios:wp-includes
ywp-admin
. Esto significa que estos nombres de directorio están codificados en el código fuente. Esto significa que tendría que crear nuevos directorios (ya que PHP usa el sistema de archivos del sistema operativo subyacente, no apache) para acceder a estos y luego ESCRIBE ESTOS en el html emitido. Esto es demasiado problema. Rápidamente me di por vencido y fui al baño a tomar una caca.Lección
Claro, podría haber leído http://codex.wordpress.org/Hardening_WordPress y seguir esos pasos. Pero quería el sitio perfecto. Ahora solo quiero todas esas horas de regreso. Lo más importante que me impidió detenerme fue que no leí en ninguna parte de Internet que esto era mucho trabajo y casi imposible de hacer. En cambio, leí sobre personas que intentan hacerlo sin tener la menor idea de si tuvieron éxito o no. Entonces, para mi yo anterior, a quien le enviaré esto a través de Time Machine de Apple, no intentes ocultar WordPress. Que no vale la pena.
fuente
wp-includes
y envía un mensaje dewp-admin
texto manualmente. Estoy bastante seguro de que examinó todos y cada uno de los archivos y los reemplazó manualmente. Eso es porque te perdiste algunos softwares útiles y útiles. Por ejemplo, podrías haber probado grepwin, lo que hace que ese trabajo sea más fácilSi estás tratando de ocultar que estás usando WordPress debido a las galletas, entonces realmente tienes trabajo que hacer. Si haces el truco wp *, ¿qué pasa con wp-content y wp-includes? Sin poder alcanzarlos, romperás la página y se verá horrible.
Además, hay tantas cosas en Wordpress que esto realmente requiere algo de trabajo, y lo más probable es que tenga que volver a hacer mucho cuando se instale una actualización. (Como algunas redirecciones en Apache no funcionarán)
Si solo está tratando de esconderlo del Sr. y la Sra. De todos, entonces, por supuesto, debería ser capaz de hacer eso con oscuridad.
¿Has leído la guía de "endurecimiento de Wordpress"? Si no es así, deberías echarle un vistazo: http://codex.wordpress.org/Hardening_WordPress Da una gran introducción a muchas cosas que puedes hacer.
Además, si está ansioso por ocultar el hecho de que usa Wordpress, ¿por qué usarlo?
fuente
Intente hacer su configuración en la configuración de apache. Esto puede ser una inclusión de archivo como
/etc/wordpress/htaccess
. Esto le permitirá usar laDirectory
directiva de configuración. Sin embargo, deberá reiniciar Apache para cargar los cambios. Utilice el reinicio elegante si no desea interrupciones del servicio.Para restringir los accesos al directorio con
.htaccess
archivos, deben estar en los directorios apropiados. Funcionan de manera muy similar al contenido de unaDirectory
directiva de configuración. Es posible que deba habilitar las.htaccess
opciones requeridas en su configuración de apache. Este método no es tan eficiente como usar el comando en la configuración de apache, ya que debe analizarse con frecuencia.fuente
.htaccess
archivo en el directorio correspondiente. Nota: Apache recomienda usar la configuración si es posible. Utilice el control de versiones para protegerse contra sobrescrituras.