wp_options guarda ajustes del núcleo, configuración de plugins, transients, cron, widgets y a veces scripts inyectados. Un nombre aleatorio o un valor codificado puede ser malware, caché o una clave legítima del proveedor.
No borres filas solo porque un escáner las marque como sospechosas.
Trabaja sobre una copia protegida
Crea una copia coherente y restáurala en un entorno aislado. Registra el prefijo real de la tabla, que puede no ser wp_.
Restringe los volcados porque las opciones pueden contener credenciales SMTP o API, datos personales y valores relacionados con sesiones.
Utiliza consultas de solo lectura para descubrir. No muestres valores completos en terminales o informes compartidos.
Prioriza los objetivos de investigación
Revisa opciones modificadas recientemente cuando existan logs, valores grandes con autoload, dominios maliciosos exactos y nombres sin propietario conocido.
Una consulta de tamaño puede señalar filas atípicas:
SELECT option_name, autoload, LENGTH(option_value) AS bytes
FROM wp_options
ORDER BY LENGTH(option_value) DESC
LIMIT 50;
Ajusta el prefijo y úsala solo sobre datos autorizados. El tamaño sirve para priorizar, no demuestra malware.
Atribuye la opción al código
Busca el nombre exacto en código verificado de plugins, temas y desarrollos propios y en llamadas a get_option, update_option o delete_option. Comprueba si el componente propietario está activo y mantenido.
Los transients y ajustes generados pueden recrearse automáticamente. Una opción de un plugin retirado puede ser residuo inocuo; un callback comprometido puede restaurar un payload borrado.
Documenta el tipo de valor esperado y su ciclo de actualización.
Inspecciona valores serializados con seguridad
Los datos serializados por PHP incluyen longitudes de cadena. Editar el texto directamente puede corromper toda la opción. JSON y datos de constructores también necesitan herramientas que respeten su estructura.
Usa las API de WordPress o la interfaz del plugin en staging. Decodifica para inspeccionar sin evaluar PHP o JavaScript incrustado.
No pases un valor sospechoso a unserialize permitiendo instanciar objetos en un entorno inseguro; utiliza análisis limitado y compatible con WordPress.
Distingue payload y cargador
Una opción puede contener JavaScript malicioso, un dominio remoto o PHP codificado, mientras un plugin, tema o snippet decide cuándo renderizarlo o escribirlo.
Rastrea dónde se consume el valor. Limpia tanto la opción como el cargador comprometido o el endpoint de ajustes vulnerable.
Comprueba cron y administradores desconocidos capaces de reescribirlo.
Trata la opción de cron como caso especial
WordPress guarda su matriz básica de eventos programados en una opción. Está serializada, indexada por marcas de tiempo y es normal que parezca compleja. Editarla directamente puede borrar publicaciones, actualizaciones, copias o callbacks de WooCommerce.
Inspecciona eventos con WP-CLI o una interfaz de cron fiable, atribuye cada hook al código y desprograma solo el confirmado. Elimina primero el callback que lo registra para que no se regenere en la siguiente petición.
Haz un cambio específico y reversible
Exporta la fila exacta y crea otra copia reciente. Usa la función de limpieza o reset del plugin cuando sea fiable, o actualiza o elimina únicamente la opción nombrada mediante código WordPress revisado.
Cambia un elemento confirmado cada vez y registra el comportamiento esperado. Evita borrados con comodines por prefijo.
Vacía la caché de objetos o página relacionada mediante controles admitidos.
Verifica funcionamiento y no recurrencia
Prueba páginas públicas, administración, formularios, tareas programadas y ajustes WooCommerce relacionados con el propietario. Busca el indicador malicioso en la base y el HTML renderizado.
Monitoriza la opción durante cron normal, guardados de ajustes y el periodo anterior de recurrencia.
Compara tamaño de autoload y errores PHP antes y después para demostrar que la limpieza no creó una regresión de rendimiento o configuración.
Cuándo se necesita experiencia en bases
Solicita ayuda si las opciones están serializadas, contienen secretos o vuelven tras borrarlas. Comparte nombres, tamaños y hashes con los valores censurados.
El resultado seguro preserva la configuración legítima, elimina payloads confirmados y repara el código o acceso que los almacenó.