Saltar al contenido

La cadena de suministro

La amenaza más probable no viene de fuera: viene de tus dependencias. Cuántas tienes de verdad, qué puede hacer cada una en cada lado, y las cinco defensas ordenadas por lo que cuestan.

Cuántas son

Shell
# en el frontend: el árbol completo, no lo que dice package.jsonnpm ls --all | wc -l# en el core: lo mismocd src-tauri && cargo tree | wc -l

Los números suelen desconcertar. Un frontend moderno con una herramienta de construcción y un framework anda por varios cientos; el árbol de Rust de un proyecto de Tauri, por otros tantos. Y ninguno de esos números lo eligió nadie: se eligieron diez o quince dependencias directas, y el resto vino detrás.

Qué puede hacer cada una

Y aquí está la diferencia que la fase V explota:

La lectura es la que decide la práctica: una dependencia del core es infinitamente más peligrosa que una del frontend, porque en el core no hay ninguna frontera. Todo el trabajo de la fase V acota el frontend; el core no lo acota nada.

De ahí una regla que vale más que cualquier herramienta: el core tiene pocas dependencias y se revisan; el frontend puede tener más y está acotado.

Las cinco defensas

El momento en que entra sin que nadie mire

Merece nombrarlo porque es donde falla el proceso, no la herramienta:

Una actualización. El fichero de bloqueo protege del cambio inadvertido; una actualización deliberada lo reescribe entero, y con él pueden entrar decenas de paquetes nuevos. Actualizar todo de golpe justo antes de publicar es el peor momento posible.

Una dependencia transitiva. Añades un paquete y vienen quince. Nadie revisa esos quince porque nadie los eligió. Es la razón de la defensa 3: mirar el árbol que añade, no solo el paquete.

Un plugin de Tauri. Los oficiales están mantenidos por el equipo del framework; los de la comunidad son dependencias del core como cualquier otra, con todo lo de la columna derecha de la tabla. El nivel 70 da el criterio para evaluarlos.