API de ActionScript 3.0

El acceso a URL y la creación de scripts salientes (a través de URL HTTP, mailto:, etc.) se realizan a través de las siguientes API de ActionScript 3.0:

  • La función flash.system.fscommand()
  • El método ExternalInterface.call()
  • La función flash.net.navigateToURL()

En los archivos SWF que se ejecutan localmente, las llamadas a las API solo se realizan correctamente si el archivo SWF y las páginas web que lo contienen se encuentran en el entorno limitado de seguridad local de confianza. Las llamadas a estos métodos no se realizan correctamente si el contenido se encuentra en el entorno limitado local con acceso a la red o en el entorno limitado local con sistema de archivos.

El parámetro AllowScriptAccess del código HTML que carga un archivo SWF controla la capacidad de realizar un acceso a URL saliente desde un archivo SWF. Este parámetro se define dentro de la etiqueta PARAM o EMBED. Si no se define ningún valor para AllowScriptAccess, el archivo SWF y la página HTML solo se podrán comunicar si ambos se encuentran dentro del mismo dominio.

El parámetro AllowScriptAccess puede tener uno de los tres valores siguientes: "always", "sameDomain" o "never":

  • Cuando AllowScriptAccess se establece como "always", el archivo SWF se puede comunicar con la página HTML que lo incorpora. Esta regla es de aplicación incluso cuando su dominio y el de la página son diferentes.
  • Cuando AllowScriptAccess se establece como "sameDomain", el archivo SWF solo se comunica con la página HTML que lo incorpora cuando su dominio y el de la página son iguales. Este es el valor predeterminado de AllowScriptAccess. Utilice esta configuración para evitar que un archivo SWF alojado en un dominio acceda a un script de una página HTML perteneciente a otro dominio. También puede no definir un valor para AllowScriptAccess. 
  • Cuando AllowScriptAccess se establece como "never", el archivo SWF no se puede comunicar con ninguna página HTML. El uso de este valor está obsoleto y no se recomienda. Además, no es necesario si no sirve archivos SWF que no son de confianza desde su propio dominio. Si es preciso servir archivos SWF que no son de confianza, Adobe recomienda crear un subdominio independiente y colocar en él todo el contenido que no sea de confianza.

Uso de la función navigateToURL()

Además de la configuración de seguridad especificada por el parámetro allowScriptAccess descrito anteriormente, la función navigateToURL() tiene un segundo parámetro opcional. Este parámetro, target, puede utilizarse para especificar el nombre de una ventana o un fotograma HTML al que enviar la petición de URL. Estas peticiones se someten a restricciones de seguridad adicionales. Estas restricciones varían en función de si navigateToURL() se utiliza como una sentencia de creación de scripts o como una sentencia de no creación de scripts.

En el caso de las sentencias de creación de scripts, como navigateToURL("javaScript: alert('Hello from Flash Player.')"), se aplican las reglas siguientes.

  • Si el archivo SWF es un archivo de confianza local, la solicitud funciona correctamente.
  • Si el destino es la página HTML en la que se incorpora el archivo SWF, se aplican las reglas de allowScriptAccess descritas anteriormente.
  • Si el destino tiene contenido cargado del dominio al que pertenece el archivo SWF, la solicitud funciona correctamente.
  • Si el destino tiene contenido cargado de un dominio distinto al que pertenece el archivo SWF, y no se cumple ninguna de las condiciones anteriores, la solicitud no funciona correctamente.

En el caso de las sentencias de no creación de scripts (HTTP, HTTPS, mailto:, etc.), la solicitud no funciona correctamente si se cumplen todas las condiciones siguientes:

  • El destino es una de las palabras clave especiales "_top" o "_parent" y
  • el archivo SWF se encuentra en una página web alojada en un dominio diferente y
  • el archivo SWF está incorporado con un valor para allowScriptAccess que no es "always".

 

Palabras clave: AllowScriptAccess, Flash Player, Flash, Flex, fscommand, ExternalInterface, navigateToURL, espacio aislado; tn_16494

Esta obra está autorizada con arreglo a la licencia de Reconocimiento-NoComercial-CompartirIgual 3.0 Unported de Creative Commons.  Los términos de Creative Commons no cubren las publicaciones en Twitter™ y Facebook.

Avisos legales   |   Política de privacidad en línea