Glosario

¿Qué son las Application Passwords en WordPress?

20 de mayo de 2026

Las Application Passwords son credenciales de 24 caracteres introducidas en WordPress 5.6 (diciembre de 2020) que permiten a aplicaciones externas autenticarse en la REST API y XML RPC de WordPress sin exponer la contraseña principal del usuario. Cada Application Password está vinculada a un solo usuario y a una aplicación nombrada, puede revocarse individualmente desde el perfil del usuario y se envía por HTTPS mediante HTTP Basic Authentication. Sustituyen el viejo patrón inseguro de guardar la contraseña principal de WordPress dentro de apps de terceros y son hoy la forma recomendada de integrar WordPress con apps móviles, scripts de despliegue, frontends headless, herramientas de backup y agentes de IA.

¿Por qué WordPress introdujo las Application Passwords?

Antes de WordPress 5.6, toda integración REST API o XML RPC con acceso de escritura tenía que usar la contraseña principal del usuario (Basic Auth) o depender de plugins de terceros como JWT Auth u OAuth. Ambas opciones tenían problemas: la contraseña principal daba control total incluido el editor de temas y plugins, y una credencial filtrada significaba toma completa de la cuenta. Las Application Passwords lo resuelven con credenciales por app que se revocan al instante sin cambiar la contraseña del usuario ni romper otras integraciones.

¿Cómo funcionan las Application Passwords?

Un usuario autenticado abre Usuarios » Perfil en el admin, baja a la sección "Contraseñas de aplicación", escribe un nombre como "App iPhone" o "Script de backup" y pulsa Añadir nueva contraseña de aplicación. WordPress genera un token de 24 caracteres que se muestra una sola vez con el formato xxxx xxxx xxxx xxxx xxxx xxxx. El token se guarda hasheado en wp_usermeta bajo la clave _application_passwords y se usa junto al nombre de usuario en HTTP Basic Auth:

curl -u usuario:xxxxxxxxxxxxxxxxxxxxxxxx \
     https://example.com/wp-json/wp/v2/posts

O con JavaScript fetch desde un frontend headless:

const token = btoa('usuario:xxxxxxxxxxxxxxxxxxxxxxxx');
fetch('https://example.com/wp-json/wp/v2/posts', {
  headers: { 'Authorization': 'Basic ' + token }
});

Casos de uso típicos

  • Apps móviles como la app oficial de WordPress para iOS y Android.
  • Frontends headless con Next.js, Astro, SvelteKit o Nuxt que consumen /wp-json/wp/v2/.
  • Scripts CI/CD que publican posts, actualizan menús o purgan caché.
  • Herramientas de backup y migración como UpdraftPlus Remote, ManageWP, MainWP.
  • Flujos de contenido con IA donde Zapier, Make, n8n o un agente GPT propio publica borradores.
  • Sincronización de inventario WooCommerce desde un ERP o PIM.

Crear una Application Password paso a paso

  1. Inicia sesión con el usuario en cuyo nombre actuará la integración. Crea un usuario dedicado con el rol mínimo necesario.
  2. Ve a Usuarios » Perfil o a Usuarios » Todos los usuarios » Editar para otra cuenta.
  3. Baja a Contraseñas de aplicación.
  4. Pon un nombre descriptivo como Zapier Producción o Servidor backup eu01.
  5. Pulsa Añadir nueva contraseña de aplicación.
  6. Copia el token de 24 caracteres inmediatamente. Solo se muestra una vez.
  7. Pégalo en la aplicación externa junto al nombre de usuario de WordPress.

Revocar y auditar Application Passwords

En la misma pantalla del perfil cada Application Password muestra cuándo se creó y cuándo se usó por última vez. Pulsa Revocar al lado de un entry para invalidar un token concreto o Revocar todas las contraseñas de aplicación para todos. El efecto es inmediato. Revisar trimestralmente la fecha "Último uso" ayuda a detectar integraciones olvidadas.

¿Son seguras las Application Passwords?

Sí, sobre HTTPS. Cada token tiene unos 144 bits de entropía, se almacena hasheado con phpass y solo viaja en la cabecera HTTP Authorization. Riesgos:

  • HTTPS obligatorio. WordPress las rechaza sobre HTTP plano salvo si WP_ENVIRONMENT_TYPE es local.
  • Sin scopes ni caducidad. El token hereda los permisos del usuario. Usa un usuario dedicado con rol mínimo (Autor en vez de Administrador).
  • Algunos plugins de hardening como iThemes/Solid Security las desactivan por defecto.

Diferencia con OAuth, JWT o API Keys

MétodoIntegrado en WordPressRevocable por appScopesCaducidad
Contraseña principal (Basic Auth)NoTotalNo
Application PasswordSí (5.6+)Hereda rolNo
JWT Auth (plugin)NoSolo caducidadHereda rol
OAuth 2.0 (plugin)NoSí (refresh)
WooCommerce REST API KeysSolo WooCommerceLectura/EscrituraNo

Cómo desactivar las Application Passwords

add_filter( 'wp_is_application_passwords_available', '__return_false' );

O por usuario:

add_filter( 'wp_is_application_passwords_available_for_user', function ( $available, $user ) {
    if ( user_can( $user, 'manage_options' ) ) {
        return false;
    }
    return $available;
}, 10, 2 );

Qué comprueba InspectWP

InspectWP reporta la disponibilidad de la REST API de WordPress y marca el endpoint /wp-json/wp/v2/users si expone datos de usuarios sin autenticación. Las Application Passwords no aparecen en el HTML y no son parte del crawl, pero el estado de la REST API te ayuda a decidir si dejarlas activas.

Analiza tu sitio de WordPress ahora

InspectWP analiza tu sitio de WordPress en busca de problemas de seguridad, SEO, cumplimiento del RGPD y rendimiento, gratis.

Analiza tu sitio gratis