ActionScript 3.0-API:er
Utgående skript och URL-åtkomst (via HTTP URL:er, mailto, o.s.v.) fås med följande ActionScript 3.0-API:er:
- Funktionen flash.system.fscommand()
- Metoden ExternalInterface.call()
- Funktionen flash.net.navigateToURL()
För SWF-filer som körs lokalt lyckas bara API-anrop om SWF-filen och de webbsidor som ingår ligger i den lokalt tillförlitliga säkerhetssandlådan. Om innehållet ligger i systemsandlådan lokalt-med-nätverk eller lokalt-med-fil misslyckas dessa metoder.
Parametern AllowScriptAccess i HTML-koden, som läser in SWF-filer, styr möjligheten att ansluta till URL:er inifrån SWF-filen. Definiera parametern i taggen PARAM eller EMBED. Om AllowScriptAccess inte definieras med ett värde kan SWF-filen och HTML-sidan bara kommunicera om de utgår från samma domän.
Parametern AllowScriptAccess kan ta ett av tre möjliga värden: "always", "sameDomain" eller "never".
- Om AllowScriptAccess har värdet "always" kan SWF-filen kommunicera med den HTML-sida där den är inbäddad. Det gäller även om SWF-filen utgår från en annan domän än den HTML-sida där den är inbäddad.
- Om AllowScriptAccess har värdet "sameDomain" kan SWF-filen kommunicera med den HTML-sida där den är inbäddad så länge de utgår från samma domän. Detta är standardinställningen för AllowScriptAccess. Om du vill förhindra att en SWF-fil från en viss domän får tillgång till skript på en HTML-sida i en annan domän använder du denna inställning. Du kan även låta bli att ge AllowScriptAccess något värde alls.
- Om AllowScriptAccess har värdet "never" kan SWF-filen inte kommunicera med någon HTML-sida alls. Den här funktionen rekommenderas inte längre, och är onödig så länge du inte behöver kommunicera med otillförlitliga SWF-filer från din egen domän. Om du måste hantera otillförlitliga SWF-filer rekommenderar Adobe att du skapar en särskild underdomän och lägger allt otillförlitligt innehåll där.
Använda funktionen navigateToURL()
Utöver säkerhetsinställningarna i parametern allowScriptAccess som nämns ovan har funktionen navigateToURL() en andra, valfri parameter. Du kan använda den här parametern, "target", för att ange namnet på det HTML-fönster eller den ram dit du vill skicka URL-anropet. För sådana anrop gäller ytterligare säkerhetsbegränsningar. Begränsningarna varierar beroende på om navigateToURL() används som skriptberoende programsats eller inte.
Vid skriptberoende programsatser, som navigateToURL(”JavaScript: alert('Hello from Flash Player.')"), gäller följande regler.
- Om SWF-filen är en lokalt tillförlitlig fil beviljas anropet.
- Om målet är den HTML-sida där SWF-filen är inbäddad gäller reglerna för allowScriptAccess enligt ovan.
- Om målet är innehåll från samma domän som SWF-filen ligger på beviljas anropet.
- Om målet är innehåll från en annan domän än den som SWF-filen ligger på, och inget av de tidigare två villkoren har uppfyllts, beviljas inte anropet.
Vid skriptoberoende programsatser (HTTP, HTTPS, mailto, o.s.v.) misslyckas anropet om samtliga av följande villkor uppfyllts:
- Målet är något av de särskilda nyckelorden "_top" eller "_parent",
- SWF-filen utgår från en webbsida på en annan domän och
- SWF-filen är inbäddad med ett annat värde än "always" för parametern allowScriptAccess.
Nyckelord: AllowScriptAccess, Flash Player, Flash, Flex, fscommand, ExternalInterface, navigateToURL, sandlåda; tn_16494