Blog sobre desarrollo WordPress en Español Desarrollo WordPress en Español
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

Evitar la enumeración de usuarios en WordPress: bola extra
Evitar la enumeración de usuarios en WordPress: bola extra
Hace unos meses escribí en dos entradas cómo evitar la enumeración de usuarios o user enumeration (parte 1 y parte 2). Ahora viene la bola extra:…
Cómo cargar correctamente los archivos JS y CSS si estás desarrollando un tema o plugin a medida
Cómo cargar correctamente los archivos JS y CSS si estás desarrollando un tema o plugin a medida
En éste artículo vamos a tratar sobre cómo cargar correctamente los archivos JavaScript y hojas de estilo css si estás desarrollando un tema o plugin…
Optimizando el código y las consultas a base de datos para mejorar el rendimiento
Optimizando el código y las consultas a base de datos para mejorar el rendimiento
Optimizar el código y las consultas a base de datos es algo fundamental para cualquier desarrollo web, sobretodo si estás desarrollando un proyecto para sitios…
Shortcuts o atajos del teclado en el editor de WordPress
Shortcuts o atajos del teclado en el editor de WordPress
El editor WYSIWYG (What You See Is What You Get – lo que ves es lo que obtienes) de WordPress te permite usar Shortcuts o…