ActionScript 3.0-APIs

Externe Skripterstellung und URL-Zugriff (mithilfe von HTTP-URLs, mailto: usw.) werden durch die Verwendung folgender ActionScript 3.0-APIs erreicht:

  • Die flash.system.fscommand()-Funktion
  • Die ExternalInterface.call()-Methode
  • Die flash.net.navigateToURL()-Funktion

Wenn SWF-Dateien lokal ausgeführt werden, sind Aufrufe an APIs nur dann erfolgreich, wenn sich die SWF-Datei und die entsprechenden Webseiten in der Sicherheits-Sandbox „local-trusted“ befinden. Aufrufe an diese Methoden schlagen dann fehl, wenn der Inhalt sich in der Sandbox „local-with-networking“ oder „local-with-filesystem“ befindet.

Der AllowScriptAccess-Parameter im HTML-Code, der eine SWF-Datei lädt, steuert den externen URL-Zugriff aus der SWF-Datei heraus. Stellen Sie diesen Parameter im param- oder embed-Tag ein. Wenn Sie für AllowScriptAccess keinen Wert angeben, können die SWF-Datei und die HTML-Seite nur miteinander kommunizieren, wenn beide aus derselben Domäne stammen.

Der AllowScriptAccess-Parameter kann folgende Werte annehmen: „always“, „sameDomain“ oder „never“:

  • Wenn AllowScriptAccess auf „always“ festgelegt ist, kann die SWF-Datei mit der HTML-Seite, in die sie eingebettet ist, kommunizieren. Diese Regel gilt selbst dann, wenn die SWF-Datei aus einer anderen Domäne als die HTML-Seite stammt.
  • Wenn AllowScriptAccess auf „sameDomain“ festgelegt ist, kann die SWF-Datei mit der HTML-Seite, in der sie eingebettet ist, nur dann kommunizieren, wenn die SWF-Datei aus derselben Domäne stammt. Dieser Wert ist der Standardwert für AllowScriptAccess. Verwenden Sie diese Einstellungen, um zu verhindern, dass eine SWF-Datei, die auf einer Domäne gehostet wird, auf ein Skript in einer HTML-Seite auf einer anderen Domäne zugreift. Oder stellen Sie keinen Wert für AllowScriptAccess ein. 
  • Wenn AllowScriptAccess auf „never“ festgelegt ist, kann die SWF nicht mit der HTML-Seite kommunizieren. Dieser Wert ist veraltet und wird nicht empfohlen. Er ist nicht notwendig, wenn Sie nur vertrauenswürdige SWF-Dateien von Ihrer eigenen Domäne bereitstellen. Falls Sie nicht vertrauenswürdige SWF-Dateien bereitstellen müssen, empfiehlt es sich, eine separate Unterdomäne zu erstellen und alle nicht vertrauenswürdigen Inhalte dort abzulegen.

navigateToURL()-Funktion verwenden

Zusätzlich zu dem Parameter allowScriptAccess zum Angeben von Sicherheitseinstellungen (siehe oben) verfügt die Funktion navigateToURL()-Funktion über einen optionalen zweiten Parameter. Mit dem Parameter „target“ können Sie ein HTML-Fenster oder ein Bild angeben, an das die URL-Anforderung gesendet werden soll. Für diese Anforderungen gelten zusätzliche Sicherheitseinschränkungen. Diese variieren in Abhängigkeit davon, ob navigateToURL() als Scripting- oder Non-Scripting-Anweisung verwendet wird.

Für Scripting-Anweisungen, z. B. navigateToURL("javascript: alert('Hello from Flash Player.')"), gelten folgende Regeln.

  • Wenn es sich bei der SWF-Datei um eine lokal vertrauenswürdige Datei handelt, ist die Anforderung erfolgreich.
  • Wenn als Ziel die HTML-Seite verwendet wird, in die die SWF-Datei eingebettet ist, gelten die oben erläuterten allowScriptAccess-Regeln.
  • Wenn das Ziel Inhalte enthält, die aus der gleichen Domäne wie die SWF-Datei geladen wurden, ist die Anforderung erfolgreich.
  • Wenn das Ziel Inhalte enthält, die aus einer anderen Domäne als die SWF-Datei geladen wurden, und die beiden vorherigen Bedingungen nicht erfüllt sind, schlägt die Anforderung fehl.

Bei Non-Scripting-Anweisungen (z. B. HTTP, HTTPS mailto: usw.) schlägt die Anforderung fehl, wenn die folgenden Bedingungen zutreffen:

  • Das Ziel entspricht einem der speziellen Schlüsselwörter „_top“ oder „_parent“ und
  • die SWF-Datei ist Bestandteil einer Webseite in einer anderen Domäne und
  • die SWF-Datei wurde mit einem Wert für allowScriptAccess eingebettet, der nicht „always“ lautet.

 

Schlüsselwörter: AllowScriptAccess, Flash Player, Flash, Flex, fscommand, ExternalInterface, navigateToURL, Sandbox; tn_16494

Dieses Werk unterliegt den Bedingungen der Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Twitter™- und Facebook-Beiträge fallen nicht unter die Bedingungen der Creative Commons-Lizenz.

Rechtliche Hinweise   |   Online-Datenschutzrichtlinie