Entornos limitados de seguridad

Flash Player 9 y posterior, Adobe AIR 1.0 y posterior

Los equipos cliente pueden obtener archivos individuales que contienen código, contenido y datos de una serie de orígenes como, por ejemplo, sitios web externos, un sistema de archivos local o una aplicación instalada de AIR. Los motores de ejecución de Flash Player y AIR asignan individualmente archivos de código y otros recursos, como objetos compartidos, mapas de bits, sonidos, vídeos y archivos de datos, a entornos limitados de seguridad, en función de su origen, cuando se cargan. En las siguientes secciones se describen las reglas que aplican los motores de ejecución y que controlan dónde puede acceder el código o el contenido que se ejecuta en un determinado entorno limitado.

Para obtener más información sobre la seguridad de Flash Player, consulte el tema de seguridad del Centro de desarrollo de Flash Player en www.adobe.com/go/devnet_security_es .

Entornos limitados remotos

Los motores de ejecución de Flash Player y AIR clasifican los recursos (incluyendo archivos SWF) procedentes de Internet en entornos limitados independientes que se corresponden con su dominio de origen. Por ejemplo, los recursos cargados desde example.com se situarán en un entorno limitado de seguridad diferente que los recursos cargados desde foo.org . De forma predeterminada, estos archivos tienen autorización para acceder a cualquier recurso de su propio servidor. Se puede permitir que los archivos SWF accedan a datos adicionales desde otros dominios. Para ello, es necesario conceder permisos de autor y sitio web explícitos, como los archivos de política URL y el método Security.allowDomain() . Para obtener información más detallada, consulte Controles de sitio web (archivos de política) y Controles de autor (desarrollador) .

Los archivos SWF remotos no pueden cargar archivos ni recursos locales.

Para obtener más información sobre la seguridad de Flash Player, consulte el tema de seguridad del Centro de desarrollo de Flash Player en www.adobe.com/go/devnet_security_es .

Entornos limitados locales

Un archivo local es un archivo al que se hace referencia a través del protocolo file: o una ruta UNC (convención de nomenclatura universal). Los archivos SWF locales se ubican en uno de los cuatro entornos limitados locales siguientes:

  • Entorno limitado local con sistema de archivos: por motivos de seguridad y de forma predeterminada, los motores de ejecución de Flash Player y AIR colocan todos los archivos locales en el entorno limitado local con sistema de archivos. Desde este entorno limitado, el código ejecutable puede leer archivos locales (por ejemplo, mediante la clase URLLoader), pero no pueden comunicarse con la red de ningún modo. De este modo, el usuario tiene la seguridad de que no se filtran los datos locales a la red ni se comparten de forma indebida.

  • El entorno limitado local con acceso a la red: al compilar un archivo SWF, se puede especificar que tenga acceso a la red cuando se ejecute como un archivo local (consulte Configuración del tipo de entorno limitado de los archivos SWF locales ). Estos archivos se colocan en el entorno limitado local con acceso a la red. Los archivos SWF que se asignan al entorno limitado local con acceso a la red pierden el acceso al sistema de archivos local. A cambio, se les permite acceder a los datos de la red. Sin embargo, sigue sin permitirse que un archivo SWF local con acceso a la red lea los datos derivados de la red a menos que se disponga de permisos para ello, a través de un archivo de política URL o una llamada al método Security.allowDomain() . Para conceder dicho permiso, un archivo de política URL debe conceder permiso a todos los dominios a través de <allow-access-from domain="*"/> o Security.allowDomain("*") . Para obtener más información, consulte Controles de sitio web (archivos de política) y Controles de autor (desarrollador) .

  • El entorno limitado local de confianza: los archivos SWF locales que los usuarios o programas de instalación registran como archivos de confianza se colocan en el entorno limitado local de confianza. Los administradores del sistema y los usuarios también pueden reasignar (mover) un archivo SWF local al entorno limitado local de confianza, o quitarlo de él, en función de consideraciones de seguridad (consulte Controles de administrador y Controles de usuario ). Los archivos SWF asignados al entorno limitado local de confianza pueden interactuar con el resto de archivos SWF y cargar datos desde cualquier lugar (remoto o local).

  • El entorno limitado de la aplicación AIR: este entorno limitado presenta contenido que se instaló con la aplicación AIR en ejecución. De forma predeterminada, el código que se ejecuta en el entorno limitado de la aplicación AIR puede reutilizar los scripts de los archivos de cualquier dominio. No obstante, a los archivos que se encuentran fuera del entorno limitado de la aplicación AIR no se les permite reutilizar el código de scripts en el entorno limitado de la aplicación. De forma predeterminada,el código y el contenido del entorno limitado de la aplicación de AIR pueden cargar contenido y datos desde cualquier dominio.

Se prohíbe estrictamente la comunicación entre entornos limitados locales con acceso a la red y entornos limitados locales con sistema de archivos, y entre entornos limitados locales con sistema de archivos y entornos limitados remotos. Una aplicación que se ejecute en Flash Player o un usuario o administrador no pueden conceder permiso para permitir dicha comunicación.

La creación de scripts en cualquier sentido entre archivos HTML locales y archivos SWF locales (por ejemplo, mediante la clase ExternalInterface) requiere que los archivos HTML y SWF implicados estén en el entorno limitado local de confianza. El motivo de ello es que los modelos de seguridad local de los navegadores difieren del modelo de seguridad local de Flash Player.

Los archivos SWF incluidos en el entorno limitado local con acceso a la red no pueden cargar archivos SWF en el entorno limitado local con sistema de archivos. Los archivos SWF incluidos en el entorno limitado local con sistema de archivos no pueden cargar archivos SWF en el entorno limitado local con acceso a la red.

Entorno limitado de la aplicación de AIR

El motor de ejecución de Adobe AIR añade un entorno limitado adicional, denominado entorno limitado de la aplicación , al modelo del entorno limitado de seguridad de Flash Player. Los archivos instalados como parte de una aplicación de AIR se cargan en el entorno limitado de la aplicación. Los demás archivos cargados por la aplicación presentan restricciones de seguridad que se corresponden con las especificadas por el modelo de seguridad normal de Flash Player.

Cuando se instala una aplicación, todos los archivos incluidos en un paquete de AIR se instalan en el equipo del usuario en un directorio de la aplicación. Los desarrolladores pueden hacer referencia a este directorio en el código mediante el esquema de URL app:/ (consulte Esquemas de URI ). Todos los archivos del árbol de directorios de la aplicación se asignan al entorno limitado de la aplicación cuando se ejecuta la aplicación. El contenido en el entorno limitado de la aplicación cuenta con todos los privilegios que tiene disponible una aplicación de AIR, incluyendo la interacción con el sistema de archivos local.

Muchas aplicaciones de AIR solo usan estos archivos instalados localmente para ejecutar la aplicación. Sin embargo, las aplicaciones de AIR no están restringidas solo a los archivos dentro del directorio de la aplicación; pueden cargar cualquier tipo de archivo de cualquier origen. Esto incluye archivos locales del equipo del usuario así como archivos de orígenes externos disponibles, como los de una red local o en Internet. El tipo de archivo no tiene ningún impacto en las restricciones de seguridad; los archivos HTML cargados tienen los mismos privilegios de seguridad que los archivos SWF cargados desde el mismo origen.

El contenido en el entorno limitado de seguridad de la aplicación tiene acceso a las API de AIR pero los contenidos en otros entornos limitados no pueden utilizarlas. Por ejemplo, la propiedad air.NativeApplication.nativeApplication.applicationDescriptor , que devuelve los contenidos del archivo descriptor de la aplicación de la aplicación, está restringido al contenido en el entorno limitado de seguridad de la aplicación. Otro ejemplo de una API restringida es la clase FileStream, que contiene métodos para leer y escribir en el sistema de archivos local.

Las API de ActionScript que solo están disponibles para el contenido en el entorno limitado de seguridad de la aplicación se indican con el logotipo de AIR en Referencia de ActionScript 3.0 para la plataforma de Adobe Flash . El uso de estas API en otros entornos limitados hace que el motor de ejecución emita una excepción SecurityError.

Para el contenido HTML (en un objeto HTMLLoader) todas las API JavaScript de AIR (las que están disponibles mediante la propiedad window.runtime o mediante el objeto air cuando se usa el archivo AIRAliases.js) están disponibles para el contenido en el entorno limitado de seguridad de la aplicación. El contenido HTML en otro entorno limitado no tiene acceso a la propiedad window.runtime , por lo que este contenido no puede acceder a las API de AIR o Flash Player.

El contenido que se ejecuta en el entorno limitado de la aplicación de AIR cuenta con las siguientes restricciones adicionales:

  • Para el contenido HTML en el entorno limitado de seguridad de la aplicación, hay limitaciones en el uso de API que pueden transformar dinámicamente cadenas en código ejecutable después de que se carga el código. Esta limitación es para evitar que la aplicación accidentalmente inserte (y ejecute) código desde orígenes que no pertenecen a la aplicación (como dominios de red potencialmente inseguros). Un ejemplo es el uso de la función eval() . Para más información, consulte Restricciones de código del contenido en entornos limitados diferentes

  • Para evitar posibles ataques de suplantación de identidad (phishing), las etiquetas img en el contenido HTML en objetos TextField de ActionScript se omiten en el contenido SWF en el entorno limitado de seguridad de la aplicación.

  • El contenido en el entorno limitado de la aplicación no puede usar el protocolo asfunction en el contenido HTML en los campos de texto de ActionScript 2.0.

  • El contenido SWF en el entorno limitado de la aplicación no puede usar la caché entre dominios, una función que se añadió a la actualización 3 de Flash Player 9. Esta función permite que Flash Player utilice la caché persistentemente en el contenido del componente de la plataforma de Adobe y vuelva a utilizarlo en el contenido SWF cargado bajo demanda (eliminando la necesidad de volver a cargar el contenido varias veces).

Restricciones para JavaScript dentro de AIR

A diferencia del contenido en el entorno limitado de seguridad de la aplicación, el contenido JavaScript en un entorno limitado de seguridad que no pertenece a la aplicación puede llamar a la función eval() para que ejecute dinámicamente el código generado en cualquier momento. Sin embargo, existen restricciones en el código JavaScript que se ejecuta en AIR en un entorno limitado de seguridad ajeno a la aplicación. Se incluyen:

  • El código JavaScript en un entorno limitado que no pertenece a la aplicación no tiene acceso al objeto window.runtime y como tal este código no puede ejecutar las API de AIR.

  • Como valor predeterminado, el contenido en un entorno limitado de seguridad que no pertenece a la aplicación no puede usar llamadas XMLHttpRequest para cargar datos de otros dominios excepto del dominio que llama a la petición. Sin embargo, el código de aplicación puede conceder permiso al contenido que no pertenece a la aplicación configurando un atributo allowCrossdomainXHR en el fotograma o en el iframe. Para obtener más información, consulte Restricciones de código del contenido en entornos limitados diferentes .

  • Hay restricciones para llamar al método window.open() JavaScript. Para más información, consulte Restricciones para llamar al método window.open() JavaScript .

  • El contenido HTML en los entornos limitados de seguridad remotos (red) solo puede cargar contenido CSS, frame , iframe e img de dominios remotos (de URL de red).

  • El contenido HTML en los entornos limitados local con sistema de archivos, local con acceso a la red o local de confianza solo pueden cargar contenido CSS, frame , iframe e img de entornos limitados locales (no de URL de red o aplicaciones).

Para más información, consulte Restricciones de código del contenido en entornos limitados diferentes

Configuración del tipo de entorno limitado de los archivos SWF locales

Un usuario final o el administrador de un equipo puede especificar que un archivo SWF local es de confianza y permitir que cargue datos de todos los dominios, tanto locales como de red. Esto se especifica en los directorios Global Flash Player Trust y User Flash Player Trust. Para obtener más información, consulte Controles de administrador y Controles de usuario .

Para obtener más información sobre los entornos limitados locales, consulte Entornos limitados locales .

Adobe Flash Professional

Se puede configurar un archivo SWF para el entorno limitado local con sistema de archivos o para el entorno limitado local con acceso a la red estableciendo la configuración de publicación del documento en la herramienta de edición

Adobe Flex

Puede configurar un archivo SWF para el entorno limitado local con sistema de archivos o el entorno limitado local con acceso a la red definiendo el indicador use-network en el compilador Adobe Flex. Para obtener más información, consulte la sección sobre las opciones del compilador de aplicaciones en Building and Deploying Adobe Flex 3 Applications (Creación e implementación de aplicaciones Adobe Flex 3).

La propiedad Security.sandboxType

El autor de un archivo SWF puede usar la propiedad Security.sandboxType estática de solo lectura para determinar el tipo de entorno limitado al que el motor de ejecución de AIR o Flash Player ha asignado el archivo SWF. La clase Security incluye constantes que representan los valores posibles de la propiedad Security.sandboxType , del siguiente modo:

  • Security.REMOTE : este archivo SWF procede de un URL de Internet y se rige por reglas de entorno limitado basadas en dominios.

  • Security.LOCAL_WITH_FILE : el SWF es un archivo local y no es de confianza para el usuario. No se ha publicado con una designación de acceso a la red. El archivo SWF puede leer de orígenes de datos locales pero no puede comunicarse con Internet.

  • Security.LOCAL_WITH_NETWORK : el SWF es un archivo local y no es de confianza para el usuario, pero se ha publicado con una designación de acceso a la red. El archivo SWF se puede comunicar con Internet pero no puede leer en fuentes de datos locales.

  • Security.LOCAL_TRUSTED : el SWF es un archivo local y el usuario ha determinado que es de confianza, mediante el Administrador de configuración o un archivo de configuración de confianza de Flash Player. El archivo SWF puede leer de orígenes de datos locales y puede comunicarse con Internet.

  • Security.APPLICATION : el archivo SWF se ejecuta en una aplicación AIR, y se instaló con el paquete (archivo AIR) de la aplicación. De forma predeterminada, los archivos del entorno limitado de la aplicación AIR pueden reutilizar los scripts de los archivos de cualquier dominio. No obstante, a los archivos que se encuentran fuera del entorno limitado de la aplicación AIR no se les permite reutilizar los scripts del archivo AIR. De forma predeterminada, los archivos del entorno limitado de la aplicación AIR pueden cargar contenido y datos desde cualquier dominio.