Volver al Blog
Plataforma

Aislamiento de content scripts en extensiones del navegador

Comprende los mundos aislados, el DOM compartido y los mensajes explícitos entre una extensión y el JavaScript de la página.

BotBrowser Team

Documentación

Quieres la documentación estructurada de Plataforma?

Este artículo forma parte de la biblioteca editorial. Para pasos de configuración, material de referencia y actualizaciones continuas, entra en la sección de docs.

BotBrowser puede repetir un fixture autorizado de extensión y observar resultados visibles del DOM y de los mensajes, pero no puede conceder permisos de host ni convertir datos de la página en entrada confiable.

Un content script de una extensión puede leer y modificar el DOM de una página mientras ejecuta sus variables en un entorno JavaScript separado. Ese entorno es un mundo aislado: no es un segundo DOM ni una frontera de seguridad universal. La página y la extensión observan muchos de los mismos nodos, pero no comparten automáticamente variables, prototipos ni estado privado. Mantén el trabajo privilegiado en la extensión y trata cada mensaje como una interfaz explícita y validada.

Una página y un content script comparten el DOM, pero usan mundos JavaScript separados y mensajes explícitos hacia el service worker de la extensión

TL;DR

  • El mundo aislado separa referencias JavaScript, pero el DOM visible puede ser compartido.
  • Valida tipo, remitente, origin y forma de cada mensaje; una página no es una fuente autenticada.
  • BotBrowser repite fixtures sintéticos autorizados, pero no concede permisos ni prueba una operación remota.

Contenido

DOM y eventos compartidos

Una clase o texto añadido por el content script sigue siendo observable por la página. Un observer de mutaciones es una notificación, no una prueba de consentimiento. Limita la zona observada, desconecta listeners al desmontar y valida de nuevo el estado antes de una acción sensible.

Enlaces relacionados

Consulta integridad de APIs entre realms y fixtures de automatización y aislamiento.

Qué significa el aislamiento

El navegador crea para el content script su propio objeto global y sus propias referencias JavaScript. Una variable de la página no aparece automáticamente en el script, y una variable del script no aparece automáticamente en la página. Los prototipos también pueden ser distintos, por lo que cambiar window.Array en la página no sustituye las referencias que usa la extensión.

El DOM es la superficie compartida. Ambos mundos suelen leer y modificar los mismos nodos, atributos y eventos. Por eso una mutación visible también puede verla la página. El aislamiento no oculta cambios ni permite leer datos que la página no puede exponer.

El manifiesto y los permisos de host siguen limitando dónde se inyecta el script. Las APIs privilegiadas deben permanecer en el contexto de la extensión o en su service worker. El aislamiento no concede acceso a cualquier URL, frame o API.

Cruza la frontera de forma deliberada

Usa mensajería para el estado propio de la extensión. Comprueba tipo, remitente, origen y forma de los datos antes de actuar. Si la página debe participar, usa un puente pequeño con window.postMessage, un identificador de petición y una comprobación estricta del origen. Un mensaje de la página nunca es una orden autenticada.

Evita inyectar cadenas en el mundo principal cuando basta la API de content scripts. Si el puente es inevitable, no incluyas secretos y vuelve a comprobar cada petición en el lado privilegiado.

Prueba la frontera real

Crea un fixture con script de página, content script y service worker. Define variables con el mismo nombre, reemplaza un prototipo en la página y registra los valores observados y las mutaciones DOM. Repite con otro frame, una URL restringida, una recarga y un reinicio del worker. BotBrowser puede repetir un fixture autorizado, pero no concede permisos ni convierte datos de página en entrada confiable.

Conclusión

Trata el content script como un mundo JavaScript aislado con un DOM compartido y visible. Mantén las operaciones privilegiadas en la extensión, valida cada puente y prueba frames y ciclos de vida.

Fuentes

#Extensiones Del Navegador#Content Scripts#Mundos Aislados#Seguridad Web#Privacidad

Lleva BotBrowser de la investigación a producción

Usa estas guías para entender el modelo y después avanzar hacia validación multiplataforma, contextos aislados y despliegue de navegador preparado para escalar.