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.
|
|
|
|
|