WordPress 7.2 exigirá añadir WP_SECRETS_KEY en wp-config.php para guardar claves API cifradas con su nueva Secrets API

WordPress 7.2 exigirá añadir WP_SECRETS_KEY en wp-config.php para guardar claves API cifradas con su nueva Secrets API 2

WordPress va a dejar de guardar las claves de las APIs como texto plano en la base de datos. El equipo de desarrollo ha publicado la nota técnica de la Secrets API, una de las grandes novedades de WordPress 7.2, que permite a los plugins guardar contraseñas, claves API y secretos OAuth cifrados. La versión final trae un cambio importante respecto a las betas: para que funcione, las webs existentes tendrán que añadir una nueva constante, WP_SECRETS_KEY, en su archivo wp-config.php.

Qué es la Secrets API

Hasta ahora, muchos plugins guardan las claves de servicios externos, como pasarelas de pago, herramientas de email marketing o APIs de IA, en la tabla de opciones de WordPress, a menudo sin cifrar. La Secrets API, explicada por Eric Mann en Make WordPress Core el 11 de noviembre, ofrece un sistema común y seguro para hacerlo.

Los secretos se cifran con libsodium (XChaCha20-Poly1305) y se guardan en las tablas de opciones. Cada secreto tiene su propia clave, derivada de una clave raíz aleatoria que, a su vez, se cifra con WP_SECRETS_KEY. Además, el sistema conserva una versión anterior de cada secreto, para poder cambiar una credencial sin cortar el servicio mientras se despliega la nueva.

Para los desarrolladores hay funciones como wp_set_secret(), wp_get_secret() o wp_delete_secret(). Los nombres siguen el formato slug-del-plugin/nombre-del-secreto, para que un plugin no sobrescriba los secretos de otro, aunque Mann aclara que eso no es un control de acceso: cualquier código de la web puede leer cualquier secreto.

WP_SECRETS_KEY, la clave que habrá que añadir

El cambio más relevante para quien gestiona webs es que WP_SECRETS_KEY pasa a ser obligatoria. En las primeras betas, WordPress generaba una clave de respaldo a partir de LOGGED_IN_KEY y LOGGED_IN_SALT, pero eso tenía un problema: si se cambiaban esas sales, los secretos dejaban de poder leerse. Ese respaldo se ha eliminado.

Las instalaciones nuevas recibirán la clave automáticamente. Las webs existentes tendrán que añadirla: la herramienta Salud del sitio generará la línea que hay que pegar debajo de las sales en wp-config.php, y WP-CLI se está actualizando para incluirla al crear la configuración. Sin una clave válida, cualquier intento de guardar o leer un secreto devolverá un error.

Hay una advertencia clara: una vez guardados los secretos, no hay que cambiar ni borrar la clave. Si se hace, los secretos quedan ilegibles hasta que se restaure el valor antiguo. Tampoco sirven un valor vacío, el texto de ejemplo de wp-config-sample.php ni una copia de las claves o sales de autenticación.

Más control para hostings y mejores avisos

Los proveedores de hosting podrán sustituir partes del sistema con un archivo secrets.php en wp-content, que funciona como el conocido db.php. Así podrán proteger la clave con servicios externos de gestión de claves o llevar todo el sistema a un gestor de secretos propio. Si ese archivo falla, WordPress no vuelve a los valores por defecto, sino que avisa del error.

La herramienta Salud del sitio incorpora tres comprobaciones nuevas en el apartado de seguridad: si la clave falta o no sirve, si hay secretos que no se pueden descifrar y si hay credenciales importadas pendientes de cambiar. Quien haya guardado secretos durante las betas sin la nueva clave tiene un procedimiento de migración para no perderlos.

Qué deberían hacer desarrolladores y agencias

Para quien desarrolla plugins, la Secrets API es la oportunidad de dejar de guardar credenciales en claro. La nota recomienda llamar a reveal() solo donde se usa el valor, comprobar los permisos del usuario en los formularios de configuración y no pedir una credencial nueva si la lectura falla, porque podría sustituir otra que todavía funciona.

Para agencias y administradores, la tarea es sencilla pero importante: tras actualizar a WordPress 7.2, cuya versión final está prevista para el 8 de diciembre, revisar Salud del sitio y añadir WP_SECRETS_KEY en wp-config.php. Conviene guardar una copia segura de la clave, porque perderla o cambiarla dejaría sin acceso a las credenciales cifradas de los plugins.


También podría ser de tu interés:

Deja un comentario