Two Factor

Descripción

El plugin de dos factores agrega una capa adicional de seguridad a tu inicio de sesión de WordPress al exigir que los usuarios proporcionen una segunda forma de autenticación además de su contraseña. Esto ayuda a proteger contra accesos no autorizados incluso si las contraseñas se ven comprometidas.

Instrucciones de instalación

Importante: Cada usuario debe configurar individualmente sus ajustes de autenticación de dos factores.

Para usuarios individuales

  1. Navigate to your profile: Go to “Users” “Your Profile” in the WordPress admin
  2. Encuentra opciones de dos factores: Desplázate hasta la sección de “Opciones de dos factores”.
  3. Choose your methods: Enable one or more authentication providers (noting a site admin may have hidden one or more so what is available could vary):
    • Aplicación de autenticación (TOTP) – Usa apps como Google Authenticator, Authy o 1Password
    • Códigos de correo electrónico: recibe códigos de un solo uso por correo electrónico
    • Códigos de respaldo – Genera códigos de respaldo de un solo uso para emergencias
    • Método Dummy: solo para fines de prueba (requiere WP_DEBUG)
  4. Configura cada método: Sigue las instrucciones de configuración para cada proveedor habilitado
  5. Establecer método principal: Elige qué método usar como tu autenticación predeterminada.
  6. Guardar cambios: Haz clic en Actualizar perfil para guardar tus opciones

Para administradores del sitio

  • Configuración del plugin: El plugin proporciona una página de opciones en “Ajustes Dos factores” para configurar qué proveedores deben deshabilitarse a nivel de todo el sitio.
  • Gestión de usuarios: Los administradores pueden configurar 2FA para otros usuarios editando sus perfiles.
  • Security recommendations: Encourage users to enable backup methods to prevent account lockouts

Métodos de autenticación disponibles

Aplicación de autenticación (TOTP) – Recomendado

  • Seguridad: Alta – Contraseñas de un solo uso basadas en tiempo
  • Configuración: Escanea el código QR con la aplicación de autenticación
  • Compatibilidad: Funciona con Google Authenticator, Authy, 1Password y otras aplicaciones TOTP.
  • Ideal para: La mayoría de los usuarios; ofrece una seguridad excelente con buena usabilidad

Códigos de respaldo: recomendados

  • Seguridad: Media – Códigos de un solo uso
  • Configuración: Genera 10 códigos de respaldo para acceso de emergencia
  • Compatibilidad: Funciona en todas partes; no se necesita hardware especial
  • Ideal para: Acceso de emergencia cuando no hay otros métodos disponibles

Códigos por correo electrónico

  • Security: Medium – One-time codes sent via email
  • Configuración: Automática: usa tu dirección de correo electrónico de WordPress
  • Compatibilidad: Funciona con cualquier dispositivo con capacidad de correo electrónico
  • Ideal para: Usuarios que prefieren la autenticación basada en correo electrónico

Claves de seguridad FIDO U2F

  • Obsoleto y eliminado debido a la pérdida de compatibilidad con el navegador.

Método simulado

  • Seguridad: Ninguna: Siempre tiene éxito
  • Configuración: Solo disponible cuando WP_DEBUG está habilitado.
  • Propósito: Solo para pruebas y desarrollo
  • Mejor para: Desarrolladores que prueban el plugin

Notas importantes

Requisito de HTTPS

  • Todos los métodos funcionan en sitios HTTP y HTTPS.

Compatibilidad con navegadores

  • Los métodos TOTP y correo electrónico funcionan en todos los dispositivos y navegadores.

Recuperación de cuenta

  • Siempre habilita los códigos de respaldo para evitar quedarte bloqueado(a) fuera de tu cuenta
  • Si pierdes el acceso a todos los métodos de autenticación, contacta a tu administrador del sitio.

Mejores prácticas de seguridad

  • Use varios métodos de autenticación cuando sea posible
  • Keep backup codes in a secure location
  • Revisa y actualiza periódicamente tus opciones, configuración o ajustes de autenticación.

For more information about two-factor authentication in WordPress, see the WordPress Advanced Administration Security Guide.

Para más antecedentes, consulta esta entrada.

Acciones y filtros

Aquí hay una lista de ganchos de acción y filtro proporcionados por el plugin:

  • El filtro two_factor_providers anula los proveedores de dos factores disponibles, como el correo electrónico y las contraseñas de un solo uso basadas en el tiempo. Los valores del array son nombres de clases PHP de los proveedores de dos factores.
  • El filtro two_factor_providers_for_user anula los proveedores de dos factores disponibles para un usuario específico. Los valores del array son instancias de clases de proveedor y el objeto de usuario WP_User está disponible como el segundo argumento.
  • El filtro two_factor_enabled_providers_for_user anula la lista de proveedores de dos factores activados para un usuario. El primer argumento es un array de nombres de clases como valores de proveedores activados, el segundo argumento es el ID del usuario.
  • La acción two_factor_user_authenticated, que recibe el objeto de conexión WP_User como primer argumento, para definir el usuario registrado justo después del flujo de trabajo de identificación.
  • El filtro two_factor_user_api_login_enable restringe la identificación para la API REST y XML-RPC a solo contraseñas de aplicación. Ofrece el ID de usuario como segundo argumento.
  • El filtro two_factor_email_token_ttl anula el intervalo de tiempo en segundos que un token de correo electrónico es tenido en cuenta después de la generación. Acepta el tiempo en segundos como el primer argumento y el ID del objeto WP_User que está siendo identificado.
  • El filtro two_factor_email_token_length omite el contador por defecto de 8 caracteres para los tokens por correo electrónico.
  • El filtro two_factor_backup_code_length omite el contador por defecto de 8 caracteres para los códigos de respaldo. Ofrece WP_User del usuario asociado como segundo argumento.
  • El filtro two_factor_rest_api_can_edit_user omite si se pueden editar los ajustes de dos factores de un usuario a través de la API REST. El primer argumento es el $can_edit boleano actual, el segundo argumento es el ID de usuario.
  • Acción two_factor_before_authentication_prompt que recibe el objeto del proveedor y se ejecuta antes del aviso que se muestra en el formulario de entrada de autenticación.
  • Acción two_factor_after_authentication_prompt que recibe el objeto del proveedor y se ejecuta después del aviso mostrado en el formulario de inicio de sesión.
  • Acción two_factor_after_authentication_input que recibe el objeto del proveedor y se activa después de que se muestre el input en el formulario de ingreso de autenticación (si el formulario no contiene ningún input, la acción se activa inmediatamente después de two_factor_after_authentication_prompt).
  • two_factor_login_backup_links filtra los enlaces de respaldo mostrados en el formulario de inicio de sesión con dos factores.

Redireccionar después del desafío de dos factores

Para redirigir a los usuarios a una URL específica después de completar el desafío de dos factores, usa el filtro login_redirect integrado en el núcleo de WordPress. El filtro funciona de la misma manera que en un flujo de inicio de sesión estándar de WordPress:

add_filter( 'login_redirect', function( $redirect_to, $requested_redirect_to, $user ) {
    return home_url( '/dashboard/' );
}, 10, 3 );

Capturas de pantalla

FAQ

¿Con qué versiones de PHP y WordPress es compatible el plugin Two-Factor?

Este plugin es compatible con las dos últimas versiones mayores de WordPress y con la versión mínima de PHP admitida por estas versiones de WordPress.

¿Cómo puedo enviar comentarios u obtener ayuda de un fallo?

El mejor lugar para informar de fallos, sugerencias de características o cualquier otro comentario es en la página de problemas de Two Factor en GitHub. Antes de enviar un nuevo problema, por favor, busca en los problemas existentes para comprobar si alguien ha informado del mismo comentario.

¿Dónde puedo informar fallos de seguridad?

Los colaboradores del plugin y la comunidad de WordPress se toman en serio los fallos de seguridad. Apreciamos tus esfuerzos para divulgar responsablemente tus hallazgos, y haremos todo lo posible para reconocer tus contribuciones.

Para informar un problema de seguridad, visita el programa WordPress HackerOne.

¿Qué pasa si pierdo el acceso a todos mis métodos de autenticación?

Si tienes habilitados los códigos de respaldo, puedes usar uno de ellos para recuperar el acceso. Si no tienes códigos de respaldo o ya los usaste todos, necesitarás contactar al administrador de tu sitio para restablecer tu cuenta. Por eso es importante habilitar siempre los códigos de respaldo y mantenerlos en un lugar seguro.

¿Puedo usar este plugin con WebAuthn?

El plugin antes admitía FIDO U2F, que era un predecesor de WebAuthn. Hay un problema abierto para agregar soporte de WebAuthn aquí: https://github.com/WordPress/two-factor/pull/427

¿Hay una forma recomendada de usar claves de acceso o llaves de seguridad de hardware con dos factores?

Sí. Para claves de acceso (passkeys) y llaves de seguridad de hardware, puedes instalar el plugin Two-Factor Provider: WebAuthn de dos factores: https://wordpress.org/plugins/two-factor-provider-webauthn/ . Se integra directamente con Two-Factor y agrega autenticación basada en WebAuthn como una opción adicional de dos factores para los usuarios.

Reseñas

1 de Julio de 2026 1 respuesta
The Two-Factor plugin provides a simple and effective way to enhance WordPress login security. It supports multiple authentication methods, is easy to configure, and integrates seamlessly with the WordPress user management system. A lightweight, reliable, and highly recommended solution for protecting user accounts from unauthorized access.
14 de Junio de 2026 1 respuesta
It’s an excellent plugin; I use it on all my sites.
10 de Junio de 2026 1 respuesta
The basic options expected:1. I must be able to use any authentication app.2. An option to use email as 2nd auth.But this plugin also have backup code.
28 de Mayo de 2026 1 respuesta
This plugin requires individual users to manage 2FA. Individual users can remove 2FA from their profile at any time leaving that account vulnerable. An admin would need to check regularly that this hasn’t been removed. There is discussion about a custom function to force a user back to the profile page. I tested this. A user can still leave the account with 2FA off, albeit they cannot navigation anywhere but the profile page. However, in this state a bad actor can login with a password only to the unprotected account, then configure 2FA to their own device, this then removes the redirect and therefore undermines the entire process. This is a significant flaw. However, the plugin can protect a single admin account but any sort of user hierarchy is not protected.
7 de Mayo de 2026 1 respuesta
Not only did it work well for my use case with a customer who wanted to offer optional 2fa, but when i asked about customizing the code validation page i had a response in minutes. Very impressive. Worked well with a theme my login branded site.
27 de Abril de 2026 1 respuesta
Fonctionne parfaitement, simple et fiable
Leer los 210 comentarios

Colaboradores & Desarrolladores

“Two Factor” ha sido traducido en 41 idiomas. Gracias a los traductores por sus contribuciones.

Traduce “Two Factor” a tu idioma.

¿Interesado en el desarrollo?

Revisa el código, echa un vistazo al repositorio SVN, o suscríbete al registro de desarrollo por RSS .

Historial de cambios

0.16.0 – 27-03-2026

  • Cambios importantes: Eliminar el soporte heredado del proveedor FIDO U2F mediante #439.
  • Nuevas funcionalidades: Agregar una página de configuración dedicada para la configuración del plugin en wp-admin mediante #764.
  • Nuevas funcionalidades: Agregar un filtro de enlaces de soporte para que las personas usuarias puedan personalizar enlaces de recuperación/ayuda contextual mediante #615.
  • Nuevas funciones: Actualiza el estilo y el comportamiento de la interfaz de códigos de respaldo mediante #804.
  • Correcciones de errores: Elimina los secretos TOTP almacenados cuando el proveedor TOTP se deshabilite mediante #802.
  • Correcciones de errores: Endurecer el manejo del proveedor para que las verificaciones de inicio de sesión/opciones no fallen “abierto” cuando los proveedores esperados desaparezcan por #586.
  • Corrección de errores: Asegura que solo los proveedores configurados se guarden y habiliten en las opciones del usuario mediante #798.
  • Correcciones de errores: Mejore la accesibilidad de la página de configuración y corrija el comportamiento del #828 y el enlace de configuración del perfil mediante #830.
  • Correcciones de errores: Corrige las infracciones de PHPCS en los archivos del proveedor mediante #851.
  • Actualizaciones de desarrollo: Mueve los estilos de inicio de sesión y los scripts de proveedores desde la salida en línea a recursos en cola o externos mediante #807 y #814.
  • Actualizaciones de desarrollo: Mejora la documentación en línea y la compatibilidad con análisis estático (WPCS/phpstan) mediante #810, #815 y #817.
  • Actualizaciones de desarrollo: Mejora la confiabilidad de las pruebas unitarias e integra la generación de reportes de cobertura de código en CI mediante #825, #841 y #842.
  • Actualizaciones de desarrollo: Actualiza la documentación de readme y moderniza la infraestructura del flujo de CI mediante #835, #837, #843 y #849.
  • Actualizaciones de dependencias: Actualiza qs de 6.14.1 a 6.14.2 mediante #794.
  • Actualizaciones de dependencias: Actualiza basic-ftp de la versión 5.0.5 a la 5.2.0 mediante #816.
  • Actualizaciones de dependencias: Aplique actualizaciones automáticas de lint/formato y las actualizaciones de paquetes de Composer asociadas mediante #799.

0.15.0 – 2026-02-13

  • Cambios que rompen la compatibilidad: activa el flujo de dos factores solo cuando @kasparsd lo espere en #660 y #793.
  • Nuevas funciones: Incluye la dirección IP del usuario y una advertencia contextual en los correos de códigos con dos factores por @todeveni en #728
  • Nuevas funciones: Optimiza el texto del correo electrónico para TOTP por @masteradhoc en #789
  • New Features: Add “Settings” action link to plugin list for quick access to profile by @hardikRathi in #740
  • Nuevas funcionalidades: ganchos adicionales de formularios por @eric-michel en #742
  • Nuevas funciones: Compatibilidad completa con RFC6238 por @ericmann en #656
  • Nuevas funciones: Experiencia de usuario consistente para la configuración de TOTP por @kasparsd en #792
  • Documentación: @since documentación de @masteradhoc en #781
  • Documentación: Actualizar la documentación de usuarios y administradores, preparar más capturas de pantalla para @jeffpaul en #701
  • Documentación: Agregar historial de cambios y créditos, actualizar las notas de la versión con @jeffpaul en #696
  • Documentación: Léeme.txt claro de @masteradhoc en #785
  • Documentación: Agregar información de fecha y hora sobre las instrucciones de configuración de TOTP, por @masteradhoc, en #772
  • Documentación: Aclare las instrucciones de configuración de TOTP por @masteradhoc en #763
  • Documentación: Actualiza RELEASING.md por @jeffpaul en #787
  • Actualizaciones de desarrollo: Pausa despliegues al SVN trunk para fusiones a master por @kasparsd en #738
  • Actualizaciones de desarrollo: corrige las verificaciones de CI para la compatibilidad con PHP realizada por @kasparsd en #739
  • Actualizaciones del desarrollo: corrige las referencias de Playground, por @kasparsd, en #744
  • Actualizaciones de desarrollo: Mantener las traducciones existentes al introducir nuevo texto de ayuda en correos electrónicos por @kasparsd en #745
  • Actualizaciones del desarrollo: corrige missing_direct_file_access_protection por @masteradhoc en #760
  • Actualizaciones de desarrollo: corrige mismatched_plugin_name con @masteradhoc en #754
  • Actualizaciones de desarrollo: Presenta el flujo de trabajo de Props Bot de parte de @jeffpaul en #749
  • Actualizaciones de desarrollo: Revisión del plugin: corrige el parámetro faltante $domain mediante @masteradhoc en #753
  • Actualizaciones de desarrollo: Pruebas: Actualización a la versión de WordPress 6.8 compatible por @masteradhoc en #770
  • Actualizaciones de desarrollo: Corrige el mensaje obsoleto de PHP 8.5 mediante @masteradhoc en #762
  • Actualizaciones de desarrollo: Excluir las verificaciones 7.2 y 7.3 contra el trunk por @masteradhoc en #769
  • Actualizaciones de desarrollo: Corregir errores de verificación del plugin: MissingTranslatorsComment y MissingSingularPlaceholder de @masteradhoc en #758
  • Actualizaciones de desarrollo: Agregar pruebas de PHP 8.5 para la versión más reciente y la de trunk de WP por @masteradhoc en #771
  • Actualizaciones de desarrollo: Agregar phpcs:ignore para falsos positivos por @masteradhoc en #777
  • Actualizaciones del desarrollo: Arreglo (totp): enlace de otpauth en la URL del código QR por @sjinks en #784
  • Actualizaciones del desarrollo: Actualiza deploy.yml según @masteradhoc en #773
  • Actualizaciones de desarrollo: Actualización requerida de la versión de WordPress por @masteradhoc en #765
  • Actualizaciones de desarrollo: Corrección: asegure que la ejecución se detenga después de las redirecciones por @sjinks en #786
  • Actualizaciones de desarrollo: corrige errores de WordPress.Security.EscapeOutput.OutputNotEscaped por @masteradhoc en #776
  • Actualizaciones de dependencias: Actualiza qs y expresa por @dependabot[bot] en #746
  • Actualizaciones de dependencias: Actualiza lodash de 4.17.21 a 4.17.23 mediante @dependabot[bot] en #750
  • Actualizaciones de dependencias: Actualice lodash-es de 4.17.21 a 4.17.23 mediante @dependabot[bot] en #748
  • Actualizaciones de dependencias: Aumenta phpunit/phpunit de 8.5.44 a 8.5.52 mediante @dependabot[bot] en #755
  • Actualizaciones de dependencias: Aumenta symfony/process de 5.4.47 a 5.4.51 mediante @dependabot[bot] en #756
  • Actualizaciones de dependencias: Actualiza qs y body-parser con @dependabot[bot] en #782
  • Actualizaciones de dependencias: Aumenta webpack de 5.101.3 a 5.105.0 mediante @dependabot[bot] en #780

0.14.2 – 11-12-2025

  • Nuevas funcionalidades: Agregar un filtro para rest_api_can_edit_user_and_update_two_factor_options por @gutobenn en #689
  • Actualizaciones de desarrollo: Eliminar las herramientas de Coveralls y agregar el informe de cobertura en línea por @kasparsd en #717
  • Actualizaciones de desarrollo: Actualiza la ruta del blueprint para que se obtenga desde la rama principal en vez de un archivo eliminado, por @georgestephanis en #719
  • Actualizaciones de desarrollo: Corrige la implementación de blueprints y recursos de wporg mediante @kasparsd en #734
  • Actualizaciones de desarrollo: Sube la versión solo en lanzamientos mediante tags por @kasparsd en #735
  • Actualizaciones de desarrollo: Actualiza playwright y @playwright/test mediante @dependabot[bot] en #721
  • Actualizaciones de desarrollo: Actualiza tar-fs de la versión 3.1.0 a la 3.1.1 mediante @dependabot[bot] en #720
  • Actualizaciones de desarrollo: Actualiza node-forge de 1.3.1 a 1.3.2 mediante @dependabot[bot] en #724
  • Actualizaciones de desarrollo: Aumenta js-yaml por @dependabot[bot] en #725
  • Actualizaciones del desarrollo: Marca como probado con la última versión del núcleo de WP por @kasparsd en #730

0.14.1 – 2025-09-05

  • No codifiques la URL TOTP con URI para mostrarla. Por @dd32 en #711
  • Eliminó el archivo Security.md duplicado mediante @slvignesh05 en #712
  • Se corrigieron problemas de linting mediante @sudar en #707
  • Actualiza dependencias de desarrollo y corrige el fallo del test unitario de QR mediante @kasparsd en #714
  • Disparar el evento de cambio de js de la casilla de verificación por @gedeminas en #688

0.14.0 – 2025-07-03

  • Características: Habilita contraseñas de aplicación para la autenticación de REST API y XML-RPC (por defecto) por @joostdekeijzer en #697 y #698. Anteriormente esto requería que el filtro two_factor_user_api_login_enable se configurara en true, lo cual ahora es el predeterminado durante la autenticación con contraseñas de aplicación. El inicio de sesión por XML-RPC sigue deshabilitado para contraseñas de usuario regulares.
  • Características: Etiqueta los métodos recomendados para simplificar la configuración por @kasparsd en #676 y #675
  • Documentación: agregar demo de plugin de WP.org por @kasparsd en #667
  • Documentación: Documenta versiones compatibles del núcleo de WP y de PHP por @jeffpaul en #695
  • Documentación: Documente el proceso de lanzamiento de la mano de @jeffpaul en #684
  • Herramientas: Eliminar capturas de pantalla y gráficos duplicados de WP.org del tronco de SVN mediante @jeffpaul en #683

0.13.0 – 02-04-2025

  • Agrega el filtro two_factor_providers_for_user para limitar los proveedores de dos factores disponibles para cada usuario, por @kasparsd en #669
  • Actualiza las pruebas automatizadas para cubrir PHP 8.4 y establece como predeterminado PHP 8.3, por @BrookeDot en #665

Ver aquí los detalles completos del changelog.