Ruflo
Seguridad de recuperación y hooks en Ruflo: activación, marcas y controles
Examina la puerta de activación, modo estricto y longitud de cadenas, separando telemetría de mejor esfuerzo y permisos realmente impuestos.
Qué aprenderás
- Comprueba al llamador, no solo la clase
- Marcar y retirar son políticas diferentes
- Un hook tolerante a fallos no es una barrera de seguridad
Antes de empezar
- Conceptos básicos de Node.js, Git y terminal
- Repositorio propio y límites de tarea y permisos definidos
Explica el código del capítulo y reproduce su prueba acotada sin confundir un ayudante con todo el runtime.
Conclusiones clave
- El backend examinado sigue requiriendo la bandera exacta.
- Conservar con marcas no es bloquear; longitud de cadena no equivale a bytes UTF-8.
- Un hook exitoso no certifica persistencia ni autorización.
Comprueba al llamador, no solo la clase
AgentDbRetrievalGuard marca resultados sospechosos o grandes y puede retirarlos. AgentDBBackend llama a applyRetrievalGuard tras búsqueda HNSW o por fuerza bruta. Ese método devuelve resultados intactos si falta el guard, la bandera no es exactamente true como cadena o la lista está vacía. Una configuración explícita no evita esa condición del llamador.
Importa porque un comentario cercano sugiere que configurar explícitamente permite escanear sin bandera, mientras la condición ejecutable sigue exigiéndola. La prueba aislada con receptor simulado confirmó ambas ramas; no construyó una base de datos, verificó todas las consultas ni ejecutó un detector real. Contrasta comentarios con ejecución.
Marcar y retirar son políticas diferentes
El modo predeterminado conserva entradas sospechosas anotadas; blockOnSuspicion estricto las elimina. Las demasiado grandes no se escanean. Aunque el ajuste se llama maxPayloadBytes, compara content.length, unidades UTF-16 y no bytes UTF-8. Cinco caracteres Han tienen longitud cinco y quince bytes; con límite ocho no activan la rama de tamaño.
El detector usado en la prueba fue simulado, por lo que demuestra política y cálculo de tamaño, no eficacia de detección. Por separado, safeJsonParse elimina recursivamente claves __proto__, constructor y prototype. Esa defensa concreta no autentica autores, autoriza transferencias ni convierte texto recuperado en instrucciones fiables.
Un hook tolerante a fallos no es una barrera de seguridad
El shim central trata muchas operaciones como telemetría de mejor esfuerzo: suprime salidas, limita llamadas síncronas y termina correctamente aunque falle la CLI para no bloquear el turno. Su rama previa a herramientas adapta además la salida al anfitrión detectado. Un cero no demuestra persistencia ni aprobación de seguridad de la acción solicitada.
Impón herramientas permitidas, acceso a datos y escrituras externas mediante controles independientes del anfitrión. Comprueba backend activo, ruta de recuperación, política estricta y casos multilingües o hooks fallidos. Esta revisión de implementación y pruebas acotadas no es una prueba de intrusión ni una certificación del despliegue.
Pasos de implementación
- 1
Identifica backend y ruta real de búsqueda.
- 2
Prueba apagado, activación y modo estricto.
- 3
Incluye texto multibyte y hooks fallidos.
- 4
Aplica permisos fuera de la prosa orientativa.
Ejemplo para copiar
{"guardEnabledValue":"true","strictModeIsSeparate":true,"sizeCheckUnit":"UTF-16 code units","realSecurityScannerExecuted":false,"hookExitZeroMeansPolicyApproved":false,"deployedSecurityVerified":false}Preguntas frecuentes
¿Construir un guard configurado fuerza cualquier búsqueda?
No en el llamador examinado: también necesita la bandera exacta. Las demás rutas requieren revisión independiente.
¿Salir con cero demuestra aprendizaje correcto?
No. El shim central usa mejor esfuerzo y puede ocultar el fallo del subcomando.
Fuentes
- plugins/ruflo-core/hooks/hooks.jsonFuente verificada 2026-09-08
- plugins/ruflo-core/scripts/ruflo-hook.cjsFuente verificada 2026-09-08
- v3/@claude-flow/memory/src/agentdb-retrieval-guard.tsFuente verificada 2026-09-08
- v3/@claude-flow/memory/src/agentdb-backend.tsFuente verificada 2026-09-08
- v3/@claude-flow/memory/src/json-security.tsFuente verificada 2026-09-08