API ActionScript 3.0

L’accès au langage de script et aux URL sortants (à l’aide des URL HTTP, mailto:, etc.) découle de l’utilisation des API ActionScript 3.0 :

  • La fonction flash.system.fscommand()
  • La méthode ExternalInterface.call()
  • La fonction flash.net.navigateToURL()

Pour les fichiers SWF exécutés en local, les appels aux API ne sont réussis que si le fichier SWF et les pages Web se trouvent dans un sandbox sécurisé en local fiable. Les appels à cette méthode échouent si le contenu se trouve dans le sandbox local avec réseau ou le sandbox local avec fichiers.

Le paramètre AllowScriptAccess du code HTML chargeant un fichier SWF contrôle la capacité d’effectuer un accès URL sortant depuis le fichier SWF. Définissez ce paramètre dans la balise PARAM ou EMBED. Si aucune valeur n’est définie pour AllowScriptAccess, le fichier SWF et la page HTML ne peuvent communiquer que si les deux appartiennent au même domaine.

Le paramètre AllowScriptAccess peut avoir l’une des trois valeurs suivantes : always, sameDomain ou never :

  • Quand le paramètre AllowScriptAccess est défini sur always, le fichier SWF peut communiquer avec la page HTML dans laquelle il est imbriqué. Cette règle s’applique même quand le fichier SWF appartient à un domaine différent de la page HTML.
  • Quand AllowScriptAccess est défini sur sameDomain, le fichier SWF communique avec la page HTML dans laquelle il est imbriqué uniquement quand le fichier SWF appartient au même domaine. La valeur par défaut est celle de AllowScriptAccess. Pour empêcher un fichier SWF hébergé dans un domaine d’accéder à un script sur une page HTML d’un autre domaine, utilisez ce paramètre. Vous pouvez également ne pas définir de valeur pour AllowScriptAccess.
  • Quand AllowScriptAccess est défini sur never, le fichier SWF ne peut pas communiquer avec une page HTML. L’utilisation de cette valeur est obsolète et non recommandée. Elle n’est pas nécessaire si vous ne servez pas de fichiers non fiables à partir de votre propre domaine. Si vous devez servir des fichiers SWF non fiables, Adobe recommande de créer un sous-domaine distinct et d’y placer tous le contenu non fiable.

Utilisation de la fonction navigateToURL()

Outre le paramètre de sécurité spécifié par le paramètre allowScriptAccess ci-dessus mentionné, la fonction navigateToURL() dispose d’un deuxième paramètre facultatif. Vous pouvez utiliser ce paramètre, target, pour spécifier le nom d’une fenêtre ou d’une image HTML à laquelle envoyer la demande d’URL. Des restrictions de sécurité supplémentaires s’appliquent à de telles demandes. Les restrictions varient en fonction de l’utilisation de navigateToURL() en tant qu’instruction de langage de script ou non de langage de script.

Pour les instructions de langage de script, comme navigateToURL("JavaScript: alert(’Hello from Flash Player.’)"), les règles suivantes s’appliquent.

  • Si le fichier SWF est localement fiable, la requête fonctionne.
  • Si la cible est la page HTML dans laquelle le fichier SWF est imbriqué, les règles allowScriptAccess décrites ci-dessus s’appliquent.
  • Si la cible contient du contenu chargé à partir du même domaine que le fichier SWF, la requête fonctionne.
  • Si la cible contient du contenu chargé à partir d’un domaine différent du fichier SWF et qu’aucune des deux conditions précédentes ne sont remplies, la requête échoue.

Pour les instructions hors langage de script (HTTP, HTTPS, mailto:, etc.), la requête échoue si toutes les conditions suivantes s’appliquent :

  • La cible est l’un des mots clés spéciaux _top ou _parent et
  • le fichier SWF se trouve sur une page Web hébergée à partir d’un domaine différente et
  • le fichier SWF est imbriqué avec une valeur de allowScriptAccess qui n’est pas always.

 

Mots clés : AllowScriptAccess, Flash Player, Flash, Flex, fscommand, ExternalInterface, navigateToURL, sandbox ; tn_16494

Ce produit est distribué sous licence Creative Commons Attribution - Pas d’utilisation commerciale - Partage à l’identique 3.0 non transposé  Les publications Twitter™ et Facebook ne sont pas couvertes par les dispositions Creative Commons.

Mentions légales   |   Politique de confidentialité en ligne