it-swarm-es.com

¿Puedo cambiar el nombre de la carpeta wp-admin?

¿Es posible cambiar el nombre de la carpeta wp-admin?

Sé que solo podría cambiarle el nombre, pero a menos que esté respaldado por el código, se romperían muchas cosas.

Si utilizo un nombre de carpeta personalizado, lo hará un poco más seguro, seguridad por oscuridad y todo eso.

69
Adam Dempsey

Lamentablemente, actualmente no es posible ni parece que haya una voluntad de considerarlo como una modificación, como puede ver por este tema reciente en la lista de hackers de wp y este ticket en trac .

Si realmente desea ver esto, vuelva a visitarlo, sugiero:

  1. Presente su caso en wp-hackers pero tenga en cuenta que su caso de uso es mejor que sea bueno y no "seguridad a través de la oscuridad" o se derribará como se indica arriba.

  2. Presente su argumento en un ticket de trac con las mismas advertencias.

  3. Aún mejor, suba un parche a trac que permita la funcionalidad deseada. Es mucho más difícil decir que no cuando el trabajo ya se ha hecho (pero, por supuesto, tienen una preferencia por decir "no" con mucha más frecuencia de lo que dicen "sí", por lo que debe estar prevenido).

38
MikeSchinkel

No, no puede cambiar el nombre de la carpeta. La ruta está codificada en varias ubicaciones a lo largo de la fuente de WordPress.

La seguridad a través de la oscuridad no es realmente la seguridad de todos modos.

11
Viper007Bond

La gente sigue haciendo esta pregunta, pero la gente sigue marcándola como un duplicado. La respuesta elegida para esto, sin embargo, realmente no es una respuesta a la pregunta.

Para cambiar el nombre del administrador de wordpress es necesario dar dos pasos.

En el siguiente código, estoy usando el panel de control como el nombre de mi nuevo administrador de wp. Cambie el panel de control en el código de abajo a lo que quiera para nombrar a su nuevo administrador.

Primero debe decirle a WordPress que desea cambiar la URL del administrador.

En la línea 2558 wp-includes/link-template.php es el código que dertermines la URL del administrador.

Usando el filtro admin_url puede cambiar exitosamente la url del administrador con la siguiente función:

function my_custom_admin_url($path) { 
    return str_replace('wp-admin', 'dashboard', $path); 
}
add_filter('admin_url', 'my_custom_admin_url');

Puedes hacer una prueba para ver cuál es tu nueva url haciendo esto:

function whats_my_admin_url() {
    $url = admin_url();
    echo '<pre><code>'; print_r( $url ); echo '</code></pre>';
    }
add_action( 'admin_notices', 'whats_my_admin_url' );

Sin embargo, si se da cuenta al hacer clic en el administrador, notará que no todo funciona y que algunos de los enlaces pueden darle 404 que no se encuentran o algo similar.

Segundo, cambie el .htaccess en su directorio raíz de wordpress y agregue lo siguiente al principio antes que nada.

#CUSTOM ADMIN URL REWRITE
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^dashboard[^/]*$ dashboard/ [R=301,L]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule ^dashboard(.*)$ wp-admin$1? [QSA,L,NE]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule ^wp-admin/?$ / [NE,R=404,L]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule ^wp-admin/(.*)$ dashboard/$1 [QSA,R=301,L,NE]
</IfModule>
#CUSTOM ADMIN URL REWRITE

Ahora, no soy un experto en la edición de .htaccess, por lo que parte de esto podría no ser necesario. Sin embargo, nunca he encontrado que no funcione.

Aquí está todo el asunto. Cree un archivo y suéltelo en la carpeta de complementos o en la carpeta de complementos de mu. (recuerde cambiar cada instancia del panel de control a su url de administrador preferido)

<?php
/**
 * Plugin Name: Change My Admin URL
 * Plugin URI: http://wordpress.stackexchange.com/questions/106/can-i-rename-the-wp-admin-folder
 * Description: Changes the admin url where wp-admin becomes dashboard (or whatever you change it to)
 * Version: 1.0
 * Author: Bryan Willis
 * Author URI: http://profiles.wordpress.org/codecandid
 * License: GPL2
 */

/* 

#CUSTOM ADMIN URL REWRITE FOR HTACCESS
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^dashboard[^/]*$ dashboard/ [R=301,L]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule ^dashboard(.*)$ wp-admin$1? [QSA,L,NE]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule ^wp-admin/?$ / [NE,R=404,L]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule ^wp-admin/(.*)$ dashboard/$1 [QSA,R=301,L,NE]
</IfModule>
#CUSTOM ADMIN URL REWRITE

*/

function my_custom_admin_url($path) { 
    return str_replace('wp-admin', 'dashboard', $path); 
}
add_filter('admin_url', 'my_custom_admin_url');

¿Problemas?

No he tenido ninguna en más de un año usando este método. Puede notar que wp-admin todavía funcionará, pero es más una precaución que otra cosa. Tuve algunos complementos mal escritos que codificaron wp-admin en algunos lugares que no se cargarían al intentar bloquear o redirigir wp-admin. Estoy seguro de que hay una manera de hacer esto con el htaccess, pero no lo he descubierto con éxito. Además, esto no ha sido probado en multisitio ni nada parecido.

Actualización: Enfoque alternativo

Esto es bastante similar, pero por alguna razón, mi respuesta anterior no funcionó en todos los hosts que probé.

Agregar a .htaccess

RewriteRule ^admin/(.*) wp-admin/$1?%{QUERY_STRING} [L]

Crea un archivo en la carpeta mu-plugins llamada new-admin.php y agrega esto allí:

<?php
define('WP_ADMIN_DIR', 'admin');
defined('SITECOOKIEPATH') || define('SITECOOKIEPATH', preg_replace('|https?://[^/]+|i', '', get_option('siteurl') . '/' ) );
define( 'ADMIN_COOKIE_PATH', SITECOOKIEPATH . WP_ADMIN_DIR);

add_filter('site_url',  'wpadmin_filter', 10, 3);
 function wpadmin_filter( $url, $path, $orig_scheme ) {
  $old  = array( "/(wp-admin)/");
  $admin_dir = WP_ADMIN_DIR;
  $new  = array($admin_dir);
  return preg_replace( $old, $new, $url, 1);
}

Nota: Este enfoque parecía funcionar mejor en algunos hosts, pero aún tenía el problema de no redirigir los enlaces wp-admin a la nueva URL de administración. Aquí hay un enfoque que probé a continuación. Si bienesto no funciona a continuaciónCreo que está en el camino correcto. No estoy totalmente seguro de qué gancho utilizar. htaccess podría ser una mejor alternativa pero seguí recibiendo redirecciones cuando lo intenté de esa manera.

add_action('init', 'redirect_wp_admin_url_to_404');
function redirect_wp_admin_url_to_404(){
  $redirect_to = $_SERVER['REQUEST_URI'];
  if(count($_REQUEST)> 0 && array_key_exists('redirect_to', $_REQUEST)){
    $redirect_to = $_REQUEST['redirect_to'];
    $check_wp_admin = stristr($redirect_to, 'wp-admin');
    if($check_wp_admin){
      wp_safe_redirect( '404.php' );
    }
  }
}
11
Bryan Willis

Un enfoque que es oficialmente compatible con WordPress es mover los archivos de instalación de WordPress a un subdirectorio, manteniendo el sitio en la raíz, de esta forma:

URL del sitio: http://my-blog.com

URL del administrador: http://my-blog.com/7nxnkkugrdzm/wp-admin

Si bien esto no te da total libertad para cambiar tu URL de administrador, significa que puedes prefijo con cualquier cosa que desees. Esto es tan bueno desde el punto de vista de la seguridad. También tiene la ventaja de mover todos los archivos de instalación de WordPress a una ubicación desconocida para los usuarios, por lo que debe ser parte de cualquier estrategia de fortalecimiento de WordPress.

Del Códice de WordPress: Dando a WordPress su propio directorio

Además, tenga en cuenta que si bien este esquema de seguridad se llama URL oculta, no es lo mismo que seguridad por oscuridad. URL oculta es un esquema de seguridad perfectamente válido que es tan bueno como una contraseña, mientras que seguridad por oscuridad se basa en el uso de procedimientos secretos no comprobados.

Sin embargo, se aplican las mismas advertencias que con las contraseñas: llame a la carpeta personalizada como 7nxnkkugrdzm, no happy-snappy-admin. Además, asegúrese de que sus usuarios estén conscientes de que la URL del administrador es un secreto.

9
cmc

De hecho, hay un muy buen tutorial sobre esto aquí:

Cómo ocultar información de WordPress de su código fuente espejo

Incluye cómo cambiar el nombre de wp-content, cambiar el nombre de wp-admin y eliminar la etiqueta del generador de WordPress.

Este tutorial cambiará obvio evidencia o indicaciones de ello en su código fuente, eliminando efectivamente la información de WordPress de su sitio .

Explica cómo cambiar el nombre de la carpeta, la URL de inicio de sesión de wp-admin y asegurarse de que login.php redirige al sitio principal para que la gente pueda ir allí directamente.

7
Graeme

Si desea evitar que los usuarios de nivel de suscriptor vean el directorio wp-admin, puede crear versiones independientes de inicio de sesión/registro y perfil/editar páginas en sus propios directorios. Luego, puede proteger su carpeta de administración a través de htaccess o restricción de IP. (Aunque si lo hace, debería hacer una excepción para el archivo admin-ajax, ya que algunos complementos lo usan para agregar, um, AJAX funcionalidad).

Este enfoque le brinda la "oscuridad" que desea (que en realidad no hace mucho, pero a menudo hace que los clientes y gerentes se sientan mejor), y también agrega cierta seguridad real al limitar el acceso al administrador. Además, honestamente, una URL que dice "/ login" se ve mucho mejor que "wp-login.php".

No hace falta decir que esto no hace que su sitio sea a prueba de balas. Pero es una mejora bonita, básica.

6
MathSmath

Una forma de bloquear el panel de control administrativo es utilizar las reglas .htaccess. Simplemente agregue un archivo .htaccess a la raíz del directorio wp-admin. Después de agregar este archivo, solo agregue la siguiente regla para denegar todas las direcciones IP y permitir solo su IP:

http://wp.tutsplus.com/tutorials/10-steps-to-securing-your-wordpress-installation/

AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "WordPress Admin Access Control"
AuthType Basic
<LIMIT GET>
order deny,allow
deny from all
whitelist address
allow from <IP ADDRESS HERE>
</LIMIT>
2
Josh

Si desea cambiar el nombre de wp-admin con el objetivo de agregar una capa adicional de seguridad a su instalación de WordPress, también puede probar el Roots/Bedrock WordPress Boilerplate . Puede ayudar a aislar la raíz web para limitar el acceso a archivos que no son web. También puede ayudar a organizar/asegurar todo el núcleo de WordPress al colocarlo en su propio subdirectorio, como cambiar el nombre de wp-content/a app /, así como estas características adicionales:

  • Gestión de dependencias con compositor.
  • Fácil configuración de WordPress con archivos específicos del entorno.
  • Variables de entorno con Dotenv
  • Cargador automático para complementos de mu (use complementos regulares como complementos de mu)
  • Seguridad mejorada (raíz web separada y contraseñas seguras con wp-password-bcrypt)

También puede consultar su GitHub Repo para un uso más detallado:

1
Carl Alberto

¿QUÉ PASA CON EL TRABAJO WP-ADMIN DE UN IFRAME?

Crea una nueva página en el panel de control de wp llamada "Admin". por ejemplo: sudominio/admin /

Puede hacer una declaración de caso con el header.phppage.php y/o footer.php para deshabilitar cosas en la plantilla que no es necesaria, usando:

<?php
if(!is_page('admin')): //if not the admin page.

//wrap code not needed or wanted.

else: ?>

<style type="text/css">
    .responsive-iframe {
    position: relative;
    padding-bottom: 56.25%; /*16:9*/
    height: 0;
    overflow: hidden;

    iframe {
        position: absolute;
        top:0;
        left: 0;
        width: 100%; //or 100vw
        height: 100%; //or 100vh
    }
}   
</style>

<div class="responsive-iframe">
<iframe seamless="seamless" scrolling="yes" src="http://yourdomain/wp-admin/" frameborder="0" allowfullscreen></iframe>
</div>

<?php 
endif;

Esto no es bonito, pero al menos hasta cierto punto puede ocultar wp-admin de url. Otra forma es posiblemente usar el reenvío de dominio con la máscara url habilitada.

0
samjco

Eche un vistazo a http://wordpress.org/extend/plugins/stealth-login/ esto puede ayudarlo.

0
edelwater

No, no es posible cambiar el nombre de la carpeta wp-admin con ningún código o hackeo htaccess,

En el pasado hice lo mismo para un cliente al realizar una búsqueda completa de la carpeta a través de Coda (el editor que uso) para la etiqueta "wp-admin, wp-content ... etc" y elimino "wp-" de archivos.

Después de eso podrás instalarlo pero:
Tienes que hacer lo mismo con los complementos que deseas instalar. Debes actualizar el Core manualmente borrando la etiqueta "wp-" de las nuevas versiones.

En todas las formas en que no sugiero que hagas algo como esto, déjalo como está e intenta implementar una página de inicio de sesión/registro/perfil de usuario para que tus usuarios/clientes tengan una mejor experiencia.

Cristian de Cozmolabs he escrito un muy buen tutorial. Puede editar el código un poco y hacer que se ejecute en cualquier tema de WordPress.

También puede agregar un formulario de publicación desde la interfaz para que el administrador y los usuarios con las capacidades para escribir una publicación puedan hacerlo desde la interfaz.

Aquí puede ver un ejemplo y un código sobre cómo crear una página de Frontend Post. Envío de mensaje de front-end

También puedes echar un vistazo a algunos plugins Nice aquí que hacen lo mismo con más funcionalidad.

0
Philip