ActionScript 3.0 API's

Uitgaande scriptverwerking en URL-toegang (met HTTP URL's, mailto:, etc.) wordt bereikt door het gebruik van de volgende ActionScript 3.0 API's:

  • De functie flash.system.fscommand()
  • De methode ExternalInterface.call()
  • De functie flash.net.navigateToURL()

Voor SWF-bestanden die lokaal worden uitgevoerd, lukken API-aanroepen alleen als het SWF-bestand en de bijbehorende webpagina's zich in de lokale vertrouwde beveiligingssandbox bevinden. Aanroepen van deze methoden mislukken als de inhoud zich in de sandbox Lokaal-met-bestandssysteem of Lokaal-met-netwerk bevindt.

De parameter AllowScriptAccess in de HTML-code die een SWF-bestand laadt, biedt de mogelijkheid uitgaande URL-toegang vanuit het SWF-bestand uit te voeren. Stel deze parameter in de tag PARAM of EMBED in. Als er geen waarde wordt ingesteld voor AllowScriptAccess, is alleen communicatie mogelijk tussen het SWF-bestand en de HTML-pagina als beide van hetzelfde domein afkomstig zijn.

De parameter AllowScriptAccess kan een van drie mogelijke waarden hebben: 'always', 'sameDomain' of 'never'.

  • Wanneer AllowScriptAccess 'always' is, is communicatie mogelijk tussen het SWF-bestand en de HTML-pagina waarin het is ingesloten. Deze regel is zelfs van toepassing als het SWF-bestand van een ander domein dan de HTML-pagina afkomstig is.
  • Wanneer AllowScriptAccess 'sameDomain' is, is alleen communicatie mogelijk tussen het SWF-bestand en de HTML-pagina waarin het is ingesloten als het SWF-bestand van hetzelfde domein afkomstig is. Dit is de standaardwaarde voor AllowScriptAccess. Gebruik deze instelling om te voorkomen dat een SWF-bestand dat vanaf het ene domein wordt gehost, toegang heeft tot een script in een HTML-pagina op een ander domein. Of stel geen waarde in voor AllowScriptAccess. 
  • Wanneer AllowScriptAccess 'never' is, is geen communicatie mogelijk tussen het SWF-bestand en HTML-pagina's. Het gebruik van deze waarde is afgeschaft en niet raadzaam, en is onnodig als u geen niet-vertrouwde SWF-bestanden vanaf uw eigen domein uitvoert. Als het nodig is niet-vertrouwde bestanden uit te voeren, is het raadzaam een apart subdomein te maken en alle niet-vertrouwde inhoud hierin te plaatsen.

De functie navigateToURL() gebruiken

Als aanvulling op de beveiligingsinstelling die door de hierboven besproken parameter allowScriptAccess wordt gespecificeerd, biedt de functie navigateToURL() een optionele tweede parameter. U kunt deze parameter (doel) gebruiken om de naam van een HTML-venster of -frame op te geven waarnaar de URL-aanvraag moet worden verzonden. Extra beveiligingsbeperkingen zijn van toepassing op zulke aanvragen. De beperkingen variëren afhankelijk van het gebruik van navigateToURL() als een script- of niet-scriptinstructie.

Voor scriptinstructies, zoals navigateToURL("JavaScript: alert('Hello from Flash Player.')"), zijn de volgende regels van toepassing:

  • Als het SWF-bestand een lokaal vertrouwd bestand is, slaagt de aanvraag.
  • Als het doel de HTML-pagina is waarin het SWF-bestand is ingevoegd, zijn de hierboven beschreven allowScriptAccess-regels van toepassing.
  • Als het doel inhoud bevat die is geladen vanaf hetzelfde domein als het SWF-bestand, slaagt de aanvraag.
  • Als het doel inhoud bevat die is geladen vanaf een ander domein dan het SWF-bestand, en aan geen van de vorige twee voorwaarden wordt voldaan, mislukt de aanvraag.

Voor niet-scriptinstructies (HTTP, HTTPS, mailto:, etc.) mislukt de aanvraag als wordt voldaan aan alle volgende voorwaarden:

  • Het doel is een van de volgende speciale trefwoorden '_top' of '_parent', en
  • het SWF-bestand bevindt zich in een webpagina die wordt gehost vanaf een ander domein, en
  • het SWF-bestand is ingesloten met een waarde voor allowScriptAccess die niet 'always' is.

 

Trefwoorden: AllowScriptAccess, Flash Player, Flash, Flex, fscommand, ExternalInterface, navigateToURL, sandbox; tn_16494

Dit werk is gelicentieerd onder de Creative Commons Naamsvermelding/Niet-commercieel/Gelijk delen 3.0 Unported-licentie  De voorwaarden van Creative Commons zijn niet van toepassing op Twitter™- en Facebook-berichten.

Juridische kennisgevingen   |   Online privacybeleid