Vale, ¿así que el otro servidor acaba de obtener el secreto, verdad? Y las cosas siguen funcionando. De acuerdo, ¿y si queremos evitarlo? Ahí es donde entra Lavamote y Lavamote genera una política para ti que contiene información como este paquete puede acceder a fetch y buffer para otras versiones de ese paquete que quería demostrar.
De acuerdo, con Lavamote, si hago, tengo Lavamote conectado como npm test. Lo voy a ejecutar y va a decir esto. Está un poco confuso, pero dice que el proceso no existía. En realidad, el proceso estaba indefinido solo para este paquete. Así que puedes usar el proceso en la aplicación principal u otros paquetes pero este paquete no tiene acceso a él.
De acuerdo, hagamos un poco más de hacking. ¿Has oído hablar de la contaminación de prototipos? Hubo una oportunidad de escuchar sobre eso hoy. Así que si tomo el prototipo de objeto y defino un setter como campo de autorización en eso y paso el encabezado de autorización a fetch, fetch va a llamar a mi setter que establecí en el prototipo global. Qué gracioso. De acuerdo, esto seguirá funcionando en el nodo regular. De acuerdo, y luego, sí, obtuve el portador y el secreto. De acuerdo, pero si lo ejecuto en modo Lava, voy a obtener un error que dice no se puede definir la propiedad de autorización, el objeto no es extensible. Lava mode también utiliza una tecnología detrás de escena llamada LockDown que bloquea todo y es imposible manipular el entorno JavaScript en sí mismo.
De acuerdo, volviendo aquí. ¿Cuál es la magia? Se llama JavaScript reforzado. Te permite aislar, en nuestro caso, lo estamos usando para aislar cada dependencia dentro del mismo proceso. No hay otro contexto o reinos involucrados en todo esto. Tiene compartimento, LockDown, reforzado, sí, vamos a pasar por encima de eso. Eventualmente se convertirá en parte del lenguaje. Ahora mismo es una propuesta en una etapa temprana, pero viene de personas responsables de cosas como Command JS, promesa en el lenguaje, etc. Si quieres saber más, estos enlaces están disponibles. Y me ofrezco a ayudarte a configurar un proyecto de Lava MultiView si te pones en contacto lo suficientemente temprano. Pero prometí que evocaría todas las cadenas, ¿verdad? Así que tengo una demostración más que es, oh, aún no se me ha acabado el tiempo. Genial. Hice esta cosa, usé esta tecnología para hacer esta cosa donde puedo ejecutar cualquier código y me solicita sincrónicamente todo a lo que accede. Así que tomé malware real de NPM. Ya lo han eliminado, pero estaba allí. Sí, vamos a ejecutarlo.
Comments