Gratis Te mudamos el sitio y los correos sin cortes ni costo

0810 345 6377 ESEN, cambiar a inglés
InHosting
ESEN, cambiar a inglés

Seguridad

Endurecer WordPress: los ajustes que protegen sin sumar plugins

Por el equipo técnico de InHosting6 min de lectura

En pocas palabras

La mayoría de los WordPress atacados cae por tres causas: un plugin o tema con una vulnerabilidad conocida y sin actualizar, una cuenta de administrador con contraseña débil y sin segundo factor, o un formulario que deja subir archivos ejecutables. Se cierran con configuración, no con más plugins: actualizaciones automáticas, borrar lo que no usás, DISALLOW_FILE_EDIT en wp-config.php, PHP bloqueado en la carpeta de subidas y permisos 755 y 644. Un único plugin alcanza para el segundo factor y el límite de intentos de acceso.

Por dónde entran de verdad

  • Una vulnerabilidad publicada en un plugin o un tema. A las pocas horas del anuncio empiezan los escaneos automáticos que buscan sitios con la versión vieja, sin importar si son grandes o chicos.
  • Contraseñas filtradas en otro servicio y reutilizadas en WordPress. Los robots prueban listas enteras de usuarios y claves contra wp-login.php.
  • Formularios que aceptan cualquier archivo. Si alguien logra subir un .php y ejecutarlo, tiene el sitio.
  • Plugins y temas pagos bajados gratis de sitios piratas. Muchos traen una puerta trasera de fábrica.

Actualizaciones: lo único que no se negocia

  • WordPress aplica solo las actualizaciones menores del núcleo, que son las de seguridad. Dejalo así.
  • Para los plugins y los temas, activá la actualización automática desde su pantalla, con el enlace que aparece en cada uno. Existe desde WordPress 5.5.
  • Borrá los plugins y temas que no usás. Desactivado no alcanza: el código sigue en el servidor y se puede llamar directamente. Dejá solo un tema por defecto de repuesto.
  • Desconfiá de los plugins que no se actualizan hace más de un año: en su página de wordpress.org figura la fecha de la última versión.
  • Usá una versión de PHP con soporte vigente. El hosting tiene varias y se elige desde el panel; a fines de 2026, la 8.3 o una posterior.

Tres líneas en wp-config.php

Agregalas antes del comentario que indica que dejes de editar el archivo:

define( 'DISALLOW_FILE_EDIT', true );
define( 'FORCE_SSL_ADMIN', true );
define( 'WP_AUTO_UPDATE_CORE', 'minor' );
  • DISALLOW_FILE_EDIT saca el editor de temas y plugins del escritorio. Si alguien entra con una cuenta de administrador, no puede pegar código desde ahí.
  • FORCE_SSL_ADMIN obliga a usar https en el acceso y en el escritorio.
  • WP_AUTO_UPDATE_CORE en minor deja explícito el comportamiento por omisión: seguridad automática, versiones mayores a mano.
  • No uses DISALLOW_FILE_MODS: además del editor bloquea todas las actualizaciones, incluidas las automáticas.
  • Al archivo, permisos 600 o 640. Y si alguna vez sospechás que entraron, cambiá las claves secretas (AUTH_KEY y sus compañeras) con el generador de wordpress.org: todas las sesiones abiertas se cierran en el acto.

Que nada se ejecute en la carpeta de subidas

En wp-content/uploads solo tendría que haber imágenes y documentos. Si ahí aparece un PHP, es casi seguro un intruso. Creá un .htaccess en esa carpeta con esto:

<FilesMatch "\.(php|phtml|phar|php[0-9])$">
  Require all denied
</FilesMatch>
  1. Subí un archivo de prueba llamado prueba.php a wp-content/uploads.
  2. Abrilo en el navegador: tiene que dar error 403, prohibido.
  3. Borralo. Si en lugar del 403 se ejecutó, revisá que el archivo esté dentro de wp-content/uploads y se llame exactamente .htaccess, con el punto adelante.

Cuentas: menos administradores y mejores claves

  • Un usuario por persona, nunca compartido, y administrador solo quien lo necesita. Para escribir y publicar alcanza el rol de editor o de autor.
  • Ningún usuario llamado admin: es el primero que prueban los robots.
  • Contraseñas largas y únicas, generadas por un gestor de contraseñas.
  • Segundo factor y límite de intentos de acceso, con un solo plugin mantenido y con buena reputación. Varios plugins de seguridad a la vez se pisan entre sí y cargan el sitio sin sumar protección.
  • Revisá en tu perfil las contraseñas de aplicación, que usan las integraciones externas, y revocá las que no reconozcas.

Cerrar xmlrpc.php si no lo usás

xmlrpc.php es una interfaz vieja que permite probar cientos de contraseñas en un solo pedido. Si no usás la aplicación móvil de WordPress, Jetpack ni ningún servicio que publique a distancia, cerrala desde el .htaccess de la raíz, fuera del bloque que escribe WordPress:

<Files xmlrpc.php>
  Require all denied
</Files>

Una segunda puerta delante del escritorio

El panel permite proteger la carpeta wp-admin con usuario y clave del servidor, como se explica en proteger una carpeta con contraseña. Es una barrera que un robot no pasa aunque WordPress tenga una falla en alguna pantalla del escritorio.

Dos detalles. El formulario de acceso es wp-login.php, que está en la raíz y no queda cubierto: a ese lo protege el límite de intentos del plugin. Y muchos temas y plugins usan admin-ajax.php desde el sitio público, así que hay que dejarlo fuera de la protección con este bloque en el .htaccess de wp-admin:

<Files admin-ajax.php>
  Require all granted
</Files>

Lo que suena bien y protege poco

  • Cambiar el prefijo de las tablas en un sitio que ya funciona: se arriesga la base entera por una ganancia mínima.
  • Esconder la versión de WordPress: los escáneres la deducen por otros archivos.
  • Mover la dirección de acceso: saca del registro a los robots más básicos, pero no frena a nadie que te busque a vos.
  • Instalar tres plugins de seguridad "por las dudas": más consultas, más conflictos y la misma protección que uno bien configurado.

Lo que ya pone el hosting

En el hosting de InHosting hay reglas contra ataques y aislamiento entre sitios, SSL incluido y copias automáticas que te dejan volver atrás en pocos clics. El firewall del servidor bloquea la IP que falla varias veces la contraseña del panel, del correo o del FTP.

Lo que ninguna protección del servidor puede hacer es actualizar tus plugins ni saber cuáles de tus usuarios de WordPress son legítimos. Esa parte es tuya.

La revisión de cada mes

  1. Aplicá las actualizaciones pendientes, con una copia reciente a mano.
  2. Revisá la lista de usuarios con rol de administrador: que no haya ninguno que no reconozcas.
  3. Buscá archivos PHP en la carpeta de subidas desde el administrador de archivos del panel. En un VPS, find wp-content/uploads -name "*.php" no debería devolver nada.
  4. Si tenés WP-CLI, wp core verify-checksums y wp plugin verify-checksums --all comparan tus archivos con los originales y marcan los modificados.
  5. Abrí "Herramientas" > "Salud del sitio" y resolvé lo que marque como crítico.
  6. Probá restaurar una copia de vez en cuando. Una copia que nunca se restauró es una suposición.

Preguntas frecuentes

¿Cómo saco el usuario admin sin perder lo que publicó?

Creá un administrador nuevo con otro nombre, entrá con él y borrá el viejo. WordPress te pregunta a quién asignarle el contenido: elegí el usuario nuevo y no se pierde nada.

¿Las actualizaciones automáticas pueden romper el sitio?

Las del núcleo, casi nunca. Las de plugins, a veces. Con las copias automáticas del hosting volvés atrás en minutos, y si el sitio es una tienda, probá antes las versiones grandes en una copia armada en un subdominio de prueba.

¿Qué hago con un plugin que dejó de actualizarse?

Buscale reemplazo. Cuando wordpress.org retira un plugin del directorio, su página muestra un aviso, y muchas veces el motivo es una falla de seguridad sin corregir.

¿Hace falta un plugin de seguridad si el hosting ya tiene firewall?

Para el segundo factor y el límite de intentos en WordPress, sí. El firewall del servidor cubre el panel, el correo y el FTP; no sabe quiénes son tus usuarios de WordPress ni cuántas veces fallaron en wp-login.php. Uno solo, liviano, alcanza.

Seguí leyendo

¿Preferís que lo veamos juntos? Te atiende una persona.

Si la guía no alcanza para tu caso, contanos qué necesitás: te ayudamos a elegir el plan, a migrar o a configurar tu servidor.

Hablar con un técnico