Rozhraní API jazyka ActionScript 3.0

Odchozího skriptování a přístupu k adresám URL (použití adres URL typu HTTP, příkazu mailto: atd.) lze dosáhnout použitím následujících rozhraní API jazyka ActionScript 3.0:

  • Funkce flash.system.fscommand()
  • Metoda ExternalInterface.call()
  • Funkce flash.net.navigateToURL()

V případě místně spuštěných souborů SWF jsou volání rozhraní API úspěšná pouze tehdy, pokud jsou soubor SWF a webové stránky, které jej obsahují, v místně důvěryhodném zabezpečeném izolovaném prostoru. Jestliže je obsah v místním izolovaném prostoru se sítí nebo se systémem souborů, dojde při volání těchto metod k chybě.

Schopnost získávat přístup k odchozím adresám URL ze souboru SWF je určena parametrem AllowScriptAccess v kódu HTML, který načítá soubor SWF. Tento parametr se nastavuje v rámci tagu PARAM nebo EMBED. Pokud není nastavena žádná hodnota parametru AllowScriptAccess, může komunikace mezi souborem SWF a stránkou HTML probíhat pouze v případě, že jsou soubor i stránka ve stejné doméně.

Parametr AllowScriptAccess může být nastaven na některou ze tří možných hodnot: always, sameDomain nebo never.

  • Pokud má parametr AllowScriptAccess hodnotu always, může soubor SWF komunikovat se stránkou HTML, na které je vložen. Toto pravidlo platí i v případě, že je soubor SWF v jiné doméně než stránka HTML.
  • Jestliže má parametr AllowScriptAccess hodnotu sameDomain, komunikuje soubor SWF se stránkou HTML, na které je vložen, pouze pokud je ve stejné doméně. Jedná se o výchozí hodnotu parametru AllowScriptAccess. Toto nastavení použijte v případě, že chcete zajistit, aby soubor SWF hostovaný v jedné doméně nemohl získat přístup ke skriptu na stránce HTML v jiné doméně. Nebo hodnotu parametru AllowScriptAccess nenastavujte. 
  • Pokud má parametr AllowScriptAccess hodnotu never, nemůže soubor SWF komunikovat s žádnou stránkou HTML. Použití této hodnoty není podporováno a nedoporučuje se. Pokud nepracujete s nedůvěryhodnými soubory SWF z vlastní domény, je její použití zbytečné. Jestliže je nutné pracovat s nedůvěryhodnými soubory SWF, doporučuje společnost Adobe vytvořit další subdoménu a umístit veškerý nedůvěryhodný obsah do ní.

Použití funkce navigateToURL()

Kromě nastavení zabezpečení definovaného výše popsaným parametrem allowScriptAccess má funkce navigateToURL() volitelný druhý parametr, a tím je parametr target. Můžete pomocí něj zadat název okna nebo rámečku HTML, do kterého má být požadavek URL odeslán. Pro takové požadavky platí další bezpečnostní omezení. Tato omezení se liší v závislosti na tom, zda se funkce navigateToURL() používá jako skriptovací nebo neskriptovací příkaz.

Pro skriptovací příkazy, jako je například příkaz navigateToURL("JavaScript: alert(‚Zdraví vás Flash Player.‘)“), platí následující pravidla.

  • Pokud je soubor SWF místně důvěryhodný, bude požadavek úspěšný.
  • Pokud je cílovým objektem stránka HTML, na které je soubor SWF vložen, budou platit výše popsaná pravidla pro parametr allowScriptAccess.
  • Pokud cílový objekt zahrnuje obsah načtený ze stejné domény jako soubor SWF, bude požadavek úspěšný.
  • Pokud cílový objekt zahrnuje obsah načtený z jiné domény než soubor SWF a není splněna ani jedna z předchozích dvou podmínek, nebude požadavek úspěšný.

V případě neskriptovacích příkazů (HTTP, HTTPS, mailto: atd.) platí, že pokud jsou splněny všechny následující podmínky, není požadavek úspěšný:

  • Cílový objekt je určen některým ze speciálních klíčových slov: _top nebo _parent.
  • Soubor SWF je na webové stránce hostované v jiné doméně.
  • Soubor SWF je vložen s použitím jiné hodnoty parametru allowScriptAccess než always.

 

Klíčová slova: AllowScriptAccess, Flash Player, Flash, Flex, fscommand, ExternalInterface, navigateToURL, izolovaný prostor; tn_16494

Tato práce podléhá licenci Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Na příspěvky ze služeb Twitter™ a Facebook se nevztahují podmínky licence Creative Commons.

Právní upozornění   |   Zásady ochrany osobních údajů online