Seguridad WordPress

Seguridad WordPress: proteger el acceso a wp-admin

Uno de los objetivos más importantes para cualquier atacante es el acceso al panel de administración o back-end de nuestro WordPress. Debemos aumentar la seguridad en este punto tratando de protegerlo para mantener nuestra web a salvo de atacantes malintencionados.

Podemos proteger el acceso a wp-admin de varias maneras: mediante reglas en el archivo .htaccess, protegerlo con contraseña a través del archivo .htpasswd, o instalando el plugin Limit Login Attemps.

Proteger wp-admin con .htaccess y .htpasswd

Podemos poner un archivo de apache .htaccess dentro de la carpeta wp-admin, independiente del que tengamos en la raíz del proyecto. Desde este archivo podemos indicar que esta carpeta esté protegida mediante contraseña, apuntando a nuestro archivo .htpasswd, donde guardaremos nuestras credenciales.

Cómo puede observarse podemos establecer un título y tenemos que definir la carpeta donde se guarda nuestro archivo .htpasswd. Ésta ruta debe ser la absoluta de tu servidor, puedes obtenerla con la variable $_SERVER[‘DOCUMENT_ROOT’] de PHP.

Podemos generar un archivo .htpasswd directamente desde consola. Por ejemplo si usas xampp, dirígete desde la consola a /xampp/apache/bin y ejecuta esta línea:

Te habrá generado un archivo .htpasswd con tu usuario y contraseña encriptada, que podrás subir a la ruta que has establecido anteriormente en el .htaccess.

Debemos añadir unas líneas más a nuestro fichero .htaccess que está dentro de wp-admin para que todo siga funcionando correctamente. El API Ajax de WordPress se ejecuta en el archivo wp-admin/admin-ajax-php. Como hemos bloqueado todo el acceso a la carpeta wp-admin, cualquier plugin, tema o widget que utilice el API Ajax, dejará de funcionar, así que vamos a permitir sólo las solicitudes a este archivo en concreto, así como los ficheros css, js e imágenes que también pueden ser utilizadas desde temas, plugins o widgets. El archivo .htaccess completo de nuestro wp-admin quedaría así:

También mediante una regla en el .htaccess podemos limitar el acceso a wp-admin a una IP o IPs concretas. Si dispones de IP fija puedes escribir la siguiente regla:

 

Proteger wp-admin con plugins

Existen varios plugins para limitar o proteger el acceso al wp-admin. Entre ellos podemos encontrar WP htaccess Control, WP htaccess Editor  y Limit Login Attemps.

Los dos primeros te permiten configurar el htaccess para bloquear o limitar el acceso a wp-admin. Limit Login Attemps, te permite configurar el número de intentos de login, así como el tiempo que transcurre para volver a intentarlo. Tiene una versión PRO de pago con más opciones de configuración.

Puede que también te interese

Cómo realizar una migración de WordPress correctamente
En este artículo vamos a ver paso a paso como realizar correctamente una migración de WordPress, tanto de hosting como de dominio de forma manual.…
Cómo cambiar WordPress Multisite de subdominios a subdirectorios ó viceversa
Si alguna vez has instalado WordPress Multisite sabrás que lo primero que te pide es que tomes una decisión: subdominios o subdirectorios. Por favor, elige…
Cómo reemplazar la hoja de estilos de un plugin por una propia
En muchas ocasiones nos habremos encontrado con ésta situación: Instalamos un plugin que posee sus propios estilos y clases, y no encaja bien en nuestro…
Creando un tema desde cero para WordPress parte 2: Escribiendo el tema
1. Creando un tema desde cero para WordPress: Consideraciones previas 2. Creando un tema desde cero para WordPress: Escribiendo el tema 3. Creando un tema…




  • Carlos Manuel Díaz Honrado

    Hola una duda.
    En el caso de restringir el acceso mediante IPs, sería necesario habilitar la IP del propio Servidor para que si hubiera plugins, Themes o Widgets que tuvieran que acceder a la API de Ajax pudieran hacerlo?

    Gracias

    • Hola Carlos

      Aunque bloquees el acceso por IP o por usuario/clave, es recomendable que permitas el acceso al archivo admin-ajax.php y a los JS, CSS e imágenes de la carpeta admin:

      Order Allow,Deny
      Allow from All
      Satisfy Any

      Order Allow,Deny
      Allow from All
      Satisfy Any

      • Carlos Manuel Díaz Honrado

        Gracias