Repository navigation
v0.7.0
Nuevo: Actualizaciones desde los releases de GitHub (#27)
El plugin no está en wordpress.org, así que cada sitio tenía que bajar el zip de cada versión y reemplazarlo a mano.
WPS_Updater(nuevo): con la cabeceraUpdate URI: https://github.com/fabiomb/wp-secure, WordPress deja de buscar el plugin en wordpress.org y le pregunta al filtroupdate_plugins_github.com, que consulta el último release publicado. La versión nueva aparece en Plugins y en Escritorio → Actualizaciones, se instala con un clic y funciona con las actualizaciones automáticas de WordPress.- «Ver detalles» muestra las notas del release (el changelog), convertidas a HTML y escapadas.
- Seguridad: sólo se acepta el zip
wp-secure-X.Y.Z.zipdel release publicado en este repositorio (no borradores ni prereleases, ni otro host). ConUpdate URI, otro plugin con el mismo slug en wordpress.org no puede reemplazarlo. - Privacidad: la consulta usa un User-Agent propio (
WP-Seguro/X.Y.Z); el de WordPress incluye la URL del sitio. Se guarda en caché tres horas (una si GitHub falla) y «Buscar actualizaciones» fuerza una consulta nueva. - Carpeta: si el plugin está instalado con otro nombre de carpeta (
wp-secure-main), la actualización la respeta en lugar de dejar una segunda copia. - Se puede desactivar con el ajuste «Buscar versiones nuevas en GitHub» (API y Datos) o la constante
WPS_DISABLE_UPDATE_CHECK.
Seguridad: Verificación de firma de las actualizaciones (#28)
Con actualizaciones automáticas, la cuenta de GitHub pasa a ser la llave de todos los sitios: quien la tomara podría publicar un release con un backdoor.
- Firma Ed25519: cada zip se publica con su firma (
wp-secure-X.Y.Z.zip.sig), hecha con una clave privada que no está en GitHub. El plugin trae dos claves públicas: la principal y una de emergencia guardada fuera de línea, para poder reemplazar la principal si se pierde o se compromete. WPS_Updater::download_verified()(nuevo, filtroupgrader_pre_download): descarga el paquete y su firma y la verifica consodium_compat, que viene con WordPress, así que funciona aunque PHP no tenga la extensión sodium. Si falta o no es válida, la actualización se cancela antes de tocar el plugin instalado, con un mensaje claro y un evento crítico «Actualización rechazada».docs/releasing.md(nuevo): cómo armar, firmar y publicar una versión.Plugin URIapunta al repositorio (github.com/fabiomb/wp-secure).
Versión
- Versión actualizada a
0.7.0en la cabecera del plugin, la constanteWPS_VERSIONy el MU-plugin. Sin cambios de base de datos; la migración agrega el ajuste «Buscar versiones nuevas en GitHub» (activado). Esta versión se instala a mano: es la primera con el actualizador. Desde acá, las siguientes llegan desde el panel.