Bevoegdheidsbesturingen

Flash Player 9 of hoger, Adobe AIR 1.0 of hoger

Het beveiligingsmodel van de Flash Player-client bij uitvoering is rond bronnen ontworpen. Dit zijn objecten zoals SWF-bestanden, lokale gegevens en URL’s naar inhoud op internet. Belanghebbenden zijn de partijen die eigenaar of gebruiker van deze bronnen zijn. Belanghebbenden kunnen controlemiddelen (beveiligingsinstellingen) toepassen op hun eigen bronnen. Elke bron heeft vier belanghebbenden. Flash Player hanteert een strikte hiërarchie voor de toestemming voor deze controlemiddelen, zoals in de volgende afbeelding wordt getoond:

Hiërarchie van toestemming
Hiërarchie van beveiligingscontrolemiddelen

Dit houdt bijvoorbeeld in dat wanneer een beheerder toegang tot een bron beperkt, andere belanghebbenden deze beperking niet kunnen negeren.

Bij AIR-toepassingen zijn deze bevoegdheidscontrolemiddelen alleen van toepassing op inhoud die buiten de sandbox van de AIR-toepassing wordt uitgevoerd.

Controlemiddelen voor beheerders

Een gebruiker met administratieve bevoegdheden van een computer kan beveiligingsbevoegdheden van Flash Player toepassen die effect hebben op alle gebruikers van de computer. In een omgeving anders dan een bedrijf, zoals op een huiscomputer, is er meestal één gebruiker die ook administratieve toegang heeft. Zelfs in een bedrijfsomgeving kunnen afzonderlijke gebruikers administratieve rechten op de computer hebben.

Er zijn twee typen controlemiddelen voor gebruikers met administratieve bevoegdheden:

  • Het bestand mms.cfg

  • De map Global Flash Player Trust

Het bestand mms.cfg

Het bestand mms.cfg is een tekstbestand waarmee beheerders toegang tot verschillende functies kunnen toestaan of beperken. Wanneer Flash Player wordt gestart, worden de beveiligingsinstellingen van dit bestand gelezen en worden deze gebruikt om functionaliteit te beperken. Het bestand mms.cfg bevat instellingen waarmee de beheerder functies kan beheren, zoals privacybesturingen, beveiliging van lokale bestanden, socketverbindingen enzovoort.

Een SWF-bestand heeft toegang tot informatie over mogelijkheden die zijn uitgeschakeld door de eigenschappen Capabilities.avHardwareDisable en Capabilities.localFileReadDisable aan te roepen. De meeste instellingen in het bestand mms.cfg kunnen echter niet vanuit ActionScript worden aangevraagd.

Wanneer u beveiligings- en privacybeleid voor een computer wilt instellen dat niet van een toepassing afhankelijk is, mag het bestand mms.cfg alleen door systeembeheerders worden gewijzigd. Het bestand mms.cfg kan niet door het installatieprogramma van de toepassing worden gebruikt. Hoewel een installatieprogramma dat met administratieve rechten wordt uitgevoerd de inhoud van het bestand mms.cfg kan wijzigen, beschouwt Adobe dergelijk gebruik als een schending van het vertrouwen van de gebruiker en verzoekt de makers van het installatieprogramma dringend om het bestand mms.cfg nooit te wijzigen.

Het bestand mms.cfg wordt op de volgende locatie opgeslagen:

  • Windows: system\Macromed\Flash\mms.cfg

    (bijvoorbeeld C:\WINDOWS\system32\Macromed\Flash\mms.cfg)

  • Mac: app support/Macromedia/mms.cfg

    (bijvoorbeeld /Library/Application Support/Macromedia/mms.cfg)

Zie de Flash Player Administration Guide op www.adobe.com/go/flash_player_admin_nl voor meer informatie over het bestand mms.cfg.

De map Global Flash Player Trust

Gebruikers met administratieve bevoegdheden en installatieprogramma’s van toepassingen kunnen specifieke lokale SWF-bestanden als vertrouwd voor alle gebruikers registreren. Deze SWF-bestanden worden aan de sandbox Lokaal-vertrouwd toegekend. Ze kunnen met elk SWF-bestand communiceren en gegevens van willekeurig welke plaats laden, extern of lokaal. Bestanden worden als vertrouwd toegewezen in de map Global Flash Player Trust, op de volgende locatie:

  • Windows: system\Macromed\Flash\FlashPlayerTrust

    (bijvoorbeeld C:\WINDOWS\system32\Macromed\Flash\FlashPlayerTrust)

  • Mac: app support/Macromedia/FlashPlayerTrust

    (bijvoorbeeld /Library/Application Support/Macromedia/FlashPlayerTrust)

De map Flash Player Trust kan een willekeurig aantal tekstbestanden bevatten, waarvan elk bestand het vertrouwde pad weergeeft, met één pad per regel. Elk pad kan een afzonderlijk SWF-bestand, HTML-bestand of map zijn. Opmerkingregels beginnen met het teken # . Een configuratiebestand van Flash Player Trust dat de volgende tekst bevat, garandeert bijvoorbeeld vertrouwde status aan alle bestanden in de opgegeven map en aan alle submappen:

# Trust files in the following directories: 
C:\Documents and Settings\All Users\Documents\SampleApp

De paden die in een vertrouwd configuratiebestand worden weergegeven, moeten altijd lokale paden of SMB-netwerkpaden zijn. Alle HTTP-paden in een vertrouwd configuratiebestand worden genegeerd; alleen lokale bestanden kunnen worden vertrouwd.

Geef elk vertrouwensconfiguratiebestand een bestandsnaam die bij de installatietoepassing hoort en gebruik een bestandsextensie .cfg om conflicten te voorkomen.

Wanneer een ontwikkelaar een SWF-bestand dat lokaal wordt uitgevoerd via een installatieprogramma verspreidt, kunt u het installatieprogramma een configuratiebestand laten toevoegen aan de map Global Flash Player Trust, waardoor het bestand dat u verspreidt volledige rechten krijgt. Het installatieprogramma moet worden uitgevoerd door een gebruiker met administratieve rechten. In tegenstelling tot het bestand mms.cfg, wordt de map Global Flash Player Trust opgenomen zodat installatieprogramma’s vertrouwensbevoegdheden kunnen toekennen. Zowel gebruikers met administratieve bevoegdheden als installatieprogramma’s kunnen lokaal-vertrouwde toepassingen toekennen met de map Global Flash Player Trust.

Er zijn ook mappen Flash Player Trust voor individuele gebruikers (zie Controlemiddelen voor gebruikers).

Controlemiddelen voor gebruikers

Flash Player bevat op gebruikersniveau drie verschillende mechanismen voor het instellen van bevoegdheden: de Settings-gebruikersinterface en Settings Manager, en de gebruikersmap voor Flash Player-vertrouwen.

De Settings-gebruikersinterface en Settings Manager

De Settings-gebruikersinterface is een snel en interactief mechanisme voor het configureren van de instellingen voor een specifiek domein. Instellingenbeheer vertegenwoordigt een meer gedetailleerde interface en biedt de mogelijkheid om algemene wijzigingen aan te brengen die effect hebben op de bevoegdheden van veel of van alle domeinen. Wanneer een SWF-bestand een nieuwe bevoegdheid aanvraagt waarbij runtimebeslissingen betreffende beveiliging of privacy zijn vereist, worden bovendien dialoogvensters weergegeven waarin gebruikers bepaalde Flash Player-instellingen kunnen aanpassen.

Instellingenbeheer en Interface voor instellingen bieden beveiligingsopties, zoals instellingen voor camera en microfoon, de opslag van gedeelde objecten, verouderde inhoud, enzovoort. In AIR-toepassingen zijn Settings Manager en de Settings-interface niet beschikbaar.

Opmerking: De instellingen die in het bestand mms.cfg zijn opgegeven (zie Controlemiddelen voor beheerders) worden niet in Instellingenbeheer weergegeven.

Zie www.adobe.com/go/settingsmanager_nl voor meer informatie over Instellingenbeheer.

De gebruikersmap voor Flash Player-vertrouwen

Gebruikers en installatieprogramma’s kunnen specifieke lokale SWF-bestanden als vertrouwd registreren. Deze SWF-bestanden worden aan de sandbox Lokaal-vertrouwd toegekend. Ze kunnen met elk SWF-bestand communiceren en gegevens van willekeurig welke plaats laden, extern of lokaal. Een gebruiker wijst een bestand als vertrouwd toe in de User Flash Player Trust-map, dat zich in dezelfde map bevindt als die van het opslaggebied van de gedeelde objecten (de locatie is afhankelijk van de huidige gebruiker):

  • Windows: app data\Macromedia\Flash Player\#Security\FlashPlayerTrust

    (bijvoorbeeld C:\Documents and Settings\JohnD\Application Data\Macromedia\Flash Player\#Security\FlashPlayerTrust on Windows XP of C:\Users\JohnD\AppData\Roaming\Macromedia\Flash Player\#Security\FlashPlayerTrust on Windows Vista)

    In Windows is de map Application Data standaard verborgen. Als u verborgen mappen en bestanden wilt weergeven, selecteert u Deze computer om Windows Explorer te openen en vervolgens Extra > Mapopties en opent u het tabblad Weergave. Selecteer op het tabblad Weergave het keuzerondje Verborgen bestanden en mappen weergeven.

  • Mac: app data/Macromedia/Flash Player/#Security/FlashPlayerTrust

    (bijvoorbeeld /Users/JanD/Library/Preferences/Macromedia/Flash Player/#Security/FlashPlayerTrust)

    Deze instellingen hebben alleen effect op de huidige gebruiker, niet op andere gebruikers die zich op de computer aanmelden. Wanneer een gebruiker zonder administratieve rechten een toepassing installeert in het eigen gedeelte van het systeem, laat de gebruikersmap voor Flash Player-vertrouwen het installatieprogramma de toepassing als vertrouwd registreren voor die gebruiker.

    Wanneer een ontwikkelaar een SWF-bestand dat lokaal wordt uitgevoerd via een installatieprogramma verspreidt, kunt u het installatieprogramma een configuratiebestand laten toevoegen aan de gebruikersmap voor Flash Player-vertrouwen, waardoor het bestand dat u verspreidt volledige rechten krijgt. Zelfs in deze situatie wordt het mapbestand van de User Flash Player Trust als een controlemiddel voor gebruikers beschouwd, omdat een gebruikershandeling (installatie) het initialiseert.

    Er is ook een algemene map voor Flash Player-vertrouwen die door de gebruiker met administratieve bevoegdheden of installatieprogramma’s wordt gebruikt om een toepassing voor alle gebruikers van een computer te registreren (zie Controlemiddelen voor beheerders).

Controlemiddelen voor websites (beleidsbestanden)

U kunt een beleidsbestand op uw webserver maken om gegevens van een webserver beschikbaar te maken voor SWF-bestanden van andere domeinen. Een beleidsbestand is een XML-bestand dat op een specifieke locatie op uw server is geplaatst.

Beleidsbestanden hebben effect op de toegang tot een aantal onderdelen, zoals:

  • gegevens in bitmaps, geluiden en video’s

  • het laden van XML- en tekstbestanden;

  • SWF-bestanden vanuit andere beveiligingsdomeinen importeren in het beveiligingsdomein van het SWF-bestand dat wordt geladen

  • toegang tot socket- en XML-socketverbindingen.

ActionScript-objecten instantiëren twee verschillende soorten serververbindingen: documentgebaseerde serververbindingen en socketverbindingen. ActionScript-objecten zoals Loader, Sound, URLLoader en URLStream instantiëren op document gebaseerde serververbindingen en deze objecten laden een bestand van een URL. ActionScript-objecten Socket en XMLSocket maken socketverbindingen die werken met streaming gegevens, niet met geladen documenten.

Omdat Flash Player twee soorten serververbindingen ondersteunt, zijn er ook twee soorten beleidsbestanden—URL-beleidsbestanden en socketbeleidsbestanden.
  • Voor documentgebaseerde verbindingen zijn URL-beleidsbestanden vereist. Met deze bestanden kan de server aangeven dat de gegevens en documenten erop beschikbaar zijn voor SWF-bestanden die vanuit sommige of alle domeinen worden bediend.

  • Voor socketverbindingen zijn socketbeleidsbestanden vereist, waarmee netwerk direct op het lagere TCP-socketniveau wordt ingeschakeld, met behulp van de klassen Socket en XMLSocket.

In Flash Player moeten beleidsbestanden worden verzonden met hetzelfde protocol dat de verbinding wil gebruiken. Wanneer u bijvoorbeeld een beleidsbestand op de HTTP-server plaatst, worden SWF-bestanden van andere domeinen toegestaan hier als een HTTP-server gegevens van te laden. Als u echter geen socketbeleidsbestand op dezelfde server aanbiedt, verbiedt u SWF-bestanden van andere domeinen op socketniveau verbinding met de server te maken. Met andere woorden, de manier waarop een beleidsbestand wordt opgehaald, moet overeenkomen met de manier waarop de verbinding tot stand is gebracht.

Gebruik en syntaxis van beleidsbestanden worden in de rest van deze sectie beknopt beschreven, waar deze van toepassing zijn op SWF-bestanden die voor Flash Player 10 worden gepubliceerd. (De implementatie van beleidsbestanden is iets anders in eerdere versies van Flash Player, aangezien de latere versies van Flash Player de beveiliging is versterkt.) Zie het Flash Player Developer Center-onderwerp over beleidsbestandswijzigingen in Flash Player 9 op www.adobe.com/go/devnet_security_nl voor meer informatie over beveiliging in Flash Player.

Voor code die wordt uitgevoerd in de sandbox van een AIR-toepassing, is geen beleidsbestand vereist voor toegang tot gegevens van een URL of een socket. Voor code van een AIR-toepassing die wordt uitgevoerd in een sandbox die niet van een toepassing is, is wel een beleidsbestand nodig.

Hoofdbeleidsbestanden

Standaard zoekt Flash Player (en AIR-inhoud die zich niet in de AIR-toepassingssandbox bevindt) eerst naar een URL-beleidsbestand met de naam crossdomain.xml in de hoofdmap van de server en wordt op poort 843 naar een socketbeleidsbestand gezocht. Als op een van deze locaties een bestand wordt gevonden, wordt dit het hoofdbeleidsbestand genoemd. (Bij socketverbindingen zoekt Flash Player ook naar een socketbeleidsbestand op dezelfde poort als de hoofdverbinding. Als er op die poort een beleidsbestand wordt gevonden, wordt dit echter niet als hoofdbeleidsbestand beschouwd.)

Het hoofdbeleidsbestand kan, naast het opgeven van toegangsbevoegdheden, ook een metabeleid bevatten. In een metabeleid staat welke locaties beleidsbestanden mogen bevatten. Het standaardmetabeleid voor URL-beleidsbestanden is "master-only", wat betekent dat /crossdomain.xml het enige beleidsbestand is dat op de server is toegestaan. Het standaardmetabeleid voor socketbeleidsbestanden is "all", wat betekent dat elke socket op de host een socketbeleidsbestand mag aanleveren.

Opmerking: In Flash Player 9 en lager was het standaardmetabeleid voor URL-beleidsbestanden "all", wat betekent dat elke map een beleidsbestand mocht bevatten. Als u toepassingen hebt geïmplementeerd die beleidsbestanden laden uit andere locaties dan het standaardbestand /crossdomain.xml, en die toepassingen kunnen nu in Flash Player 10 worden uitgevoerd, moet u ervoor zorgen (of de serverbeheerder) dat het hoofdbeleidsbestand wordt aangepast, zodat extra beleidsbestanden zijn toegestaan. Zie het Flash Player Developer Center-onderwerp over beleidsbestandswijzigingen in Flash Player 9 op www.adobe.com/go/devnet_security_nl voor meer informatie over het opgeven van een ander metabeleid.

Een SWF-bestand kan echter op een andere naam of een andere maplocatie controleren door de methode Security.loadPolicyFile() aan te roepen. Als het hoofdbeleidsbestand echter niet aangeeft dat de doellocatie beleidsbestanden mag aanleveren, heeft de aanroep naar loadPolicyFile() geen effect, zelfs als er op die locatie een beleidsbestand aanwezig is. Roep loadPolicyFile() aan voordat u netwerkbewerkingen probeert uit te voeren waarvoor het beleidsbestand vereist is. Flash Player zet netwerkaanvragen automatisch in de wacht achter de pogingen tot benaderen van het bijbehorende beleidsbestand. Het is bijvoorbeeld acceptabel om Security.loadPolicyFile() direct vóór het initiëren van een netwerkbewerking op te roepen.

Wanneer Flash Player controleert of er een hoofdbeleidsbestand aanwezig is, wacht het drie seconden op een reactie van de server. Als er geen reactie wordt ontvangen, gaat Flash Player ervan uit dat er geen hoofdbeleidsbestand bestaat. Er is echter geen standaardtime-outwaarde voor aanroepen naar loadPolicyFile(). Flash Player gaat ervan uit dat het aangeroepen bestand bestaat en wacht zo lang als nodig is om het te laden. Als u er dus voor wilt zorgen dat er een hoofdbeleidsbestand wordt geladen, moet u loadPolicyFile() gebruiken om het expliciet aan te roepen.

De methode heeft de naam Security.loadPolicyFile(), maar een beleidsbestand wordt pas geladen wanneer een netwerkaanroep waarvoor een beleidsbestand vereist is, wordt verzonden. Aanroepen naar loadPolicyFile() maken Flash Player alleen duidelijk waar naar beleidsbestanden moet worden gezocht wanneer deze nodig zijn.

Het is niet mogelijk om een melding te krijgen wanneer een beleidsbestandaanvraag wordt geïnitieerd of voltooid en er is ook geen reden voor. Flash Player voert beleidscontroles asynchroon uit en wacht automatisch met het initiëren van verbindingen totdat de controles succesvol zijn uitgevoerd.

De volgende secties bevatten informatie die alleen van toepassing is op URL-beleidsbestanden. Zie Verbinding maken met sockets voor meer informatie over socketbeleidsbestanden.

Bereik van URL-beleidsbestand

Een URL-beleidsbestand is alleen van toepassing op de map waaruit het wordt geladen en op de onderliggende mappen ervan. Een beleidsbestand in de hoofdmap is daarom op de hele server van toepassing, terwijl een beleidsbestand dat vanuit een willekeurige submap wordt geladen alleen op die map en de submappen van toepassing is.

Een beleidsbestand heeft alleen effect op de toegang van een bepaalde server waarop het zich bevindt. Een beleidsbestand dat zich bevindt op https://www.adobe.com:8080/crossdomain.xml is bijvoorbeeld alleen van toepassing op aanroepen voor het laden van gegevens die naar www.adobe.com worden verzonden via het HTTPS-protocol op poort 8080.

Toegangsbevoegdheden opgeven in een URL-beleidsbestand

Een XML-beleidsbestand bevat één <cross-domain-policy>-tag, die weer nul of meer <allow-access-from>-tags bevat. Elke tag <allow-access-from> bevat een attribuut (domain) dat een exact IP-adres, een exact domein of een jokertekendomein (elk willekeurig domein) opgeeft. Jokertekendomeinen worden op een van de volgende twee manieren aangegeven:
  • Door één sterretje (*), wat overeenkomt met alle domeinen en alle IP-adressen

  • Door een sterretje gevolgd door een achtervoegsel, wat overeenkomt met alleen die domeinen die eindigen met het opgegeven achtervoegsel

Achtervoegsels moeten beginnen met een punt. Jokertekendomeinen met achtervoegsels kunnen echter ook staan voor domeinen die bestaan uit uitsluitend het achtervoegsel zonder de voorafgaande punt. xyz.com wordt bijvoorbeeld beschouwd als een onderdeel van *.xyz.com. Jokertekens zijn niet toegestaan in IP-domeinspecificaties.

In het volgende voorbeeld wordt een URL-beleidsbestand weergegeven dat toegang biedt tot SWF-bestanden die van *.example.com , www.friendOfExample.com en 192.0.34.166 afkomstig zijn:

<?xml version="1.0"?> 
<cross-domain-policy> 
    <allow-access-from domain="*.example.com" /> 
    <allow-access-from domain="www.friendOfExample.com" /> 
    <allow-access-from domain="192.0.34.166" /> 
</cross-domain-policy>

Als u een IP-adres opgeeft, hebben alleen SWF-bestanden toegang die worden geladen vanaf dat IP-adres met IP-syntaxis (bijvoorbeeld http://65.57.83.12/flashmovie.swf). SWF-bestanden die domeinnaamsyntaxis gebruiken, krijgen geen toegang. Flash Player voert geen DNS-omzetting uit.

U kunt toegang toestaan tot documenten die afkomstig zijn van elk willekeurig domein, zoals in het volgende voorbeeld wordt getoond:

<?xml version="1.0"?> 
<!-- http://www.foo.com/crossdomain.xml --> 
<cross-domain-policy> 
<allow-access-from domain="*" /> 
</cross-domain-policy>

Elke tag <allow-access-from> heeft ook het optionele attribuut secure, dat standaard op true wordt ingesteld. Als het beleidsbestand zich op een HTTPS-server bevindt en u wilt SWF-bestanden op een niet-HTTPS-server toestaan om gegevens van de HTTPS-server te laden, kunt u het attribuut instellen op false.

Wanneer u het attribuut secure instelt op false, brengt u de beveiliging die het HTTPS-protocol u biedt mogelijk in gevaar. Het instellen van dit attribuut op false zorgt er vooral voor dat veilige inhoud wordt blootgesteld aan ‘snooping-aanvallen’ (ongeautoriseerde gegevenstoegang) en ‘spoofing-aanvallen’ (ongeautoriseerde toegang doordat een onbekende zich als een bekende voordoet). Adobe raadt sterk aan dat u het attribuut secure niet op false instelt.

Als te laden gegevens zich op een HTTPS-server bevinden, maar het SWF-bestand dat de gegevens laadt zich op een HTTP-server bevindt, raadt Adobe u aan het SWF-bestand naar een HTTPS-server te verplaatsen. Zo houdt u alle kopieën van uw beveiligde gegevens onder de bescherming van HTTPS. Als u echter beslist dat het ladende SWF-bestand op een HTTP-server moet blijven staan, voegt u het attribuut secure="false" toe aan de tag <allow-access-from>, zoals in de volgende code wordt getoond:

<allow-access-from domain="www.example.com" secure="false" /> 
Een ander element dat u kunt gebruiken om toegang te verlenen, is de tag allow-http-request-headers-from. Dit element verleent een client met inhoud van een ander toestemmingsdomein toestemming om door de gebruiker gedefinieerde kopteksten naar uw domein te verzenden. Terwijl de tag <allow-access-from> andere domeinen toestemming verleent om gegevens uit uw domein te halen, verleent de tag allow-http-request-headers-from andere domeinen toestemming om gegevens naar uw domein te verzenden, in de vorm van kopteksten. In het volgende voorbeeld krijgt elk domein toestemming de koptekst SOAPAction naar het huidige domein te verzenden:
<cross-domain-policy> 
    <allow-http-request-headers-from domain="*" headers="SOAPAction"/> 
</cross-domain-policy>

Als de instructie allow-http-request-headers-from in het hoofdbeleidsbestand aanwezig is, is deze van toepassing op alle mappen op de host. Anders is deze alleen van toepassing op de map en submappen van het beleidsbestand dat de instructie bevat.

Beleidsbestanden voorladen

Gegevens laden van een server of verbinding maken met een socket is een asynchrone bewerking. Flash Player wacht gewoon totdat het beleidsbestand gedownload is voordat het met de hoofdbewerking begint. Pixelgegevens uit afbeeldingen of samplegegevens uit geluiden extraheren is echter een synchrone bewerking. Het beleidsbestand moet worden geladen voordat u gegevens kunt extraheren. Wanneer u de media laadt, geeft u op dat deze moeten controleren of er een beleidsbestand is:

  • Wanneer u de methode Loader.load() gebruikt, stelt u de eigenschap checkPolicyFile van de parameter context in, dat een object LoaderContext is.

  • Wanneer u een afbeelding in een tekstveld insluit met de tag <img>, stelt u het attribuut checkPolicyFile van de tag <img> op "true" in, zoals hieronder wordt getoond:

    <img checkPolicyFile = "true" src = "example.jpg">
  • Wanneer u de methode Sound.load() gebruikt, stelt u de eigenschap checkPolicyFile van de parameter context in, dat een object SoundLoaderContext is.

  • Wanneer u de klasse NetStream gebruikt, stelt u de eigenschap checkPolicyFile van het object NetStream in.

Wanneer u een van deze parameters instelt, zoekt Flash Player eerst naar beleidsbestanden die reeds voor dat domein zijn gedownload. Vervolgens zoekt het op de standaardlocatie op de server naar het beleidsbestand, waarbij naar instructies <allow-access-from> wordt gezocht en naar de aanwezigheid van een metabeleid. Tot slot wordt gekeken naar eventuele lopende aanroepen naar de methode Security.loadPolicyFile() om te zien of deze binnen het bereik vallen.

Controlemiddelen voor auteurs (ontwikkelaars)

De hoofd-API van ActionScript die wordt gebruikt om beveiligingsrechten toe te staan is de methode Security.allowDomain(), die rechten verleent aan SWF-bestanden in de domeinen die u opgeeft. In het volgende voorbeeld verleent een SWF-bestand toegang tot SWF-bestanden die worden aangeboden op het domein www.example.com:

Security.allowDomain("www.example.com")

Deze methode geeft de volgende machtigingen:

Het voornaamste doel van het aanroepen van de methode Security.allowDomain() is om SWF-bestanden in een extern domein toe te staan scriptbewerkingen uit te voeren op het SWF-bestand dat de methode Security.allowDomain() aanroept. Zie Cross-scripting voor meer informatie.

Wanneer een IP-adres wordt opgegeven als een parameter voor de methode Security.allowDomain(), betekent dit niet dat alle partijen afkomstig van het opgegeven IP-adres toegang hebben. Alleen een partij waarvan het IP-adres specifiek in de URL is opgegeven krijgt toegang, niet een domeinnaam die aan dat IP-adres is toegewezen. Als de domeinnaam www.example.com bijvoorbeeld aan het IP-adres 192.0.34.166 wordt toegewezen, geeft een aanroep van Security.allowDomain("192.0.34.166") geen toegang aan www.example.com.

U kunt de joker "*" aan de methode Security.allowDomain() doorgeven om toegang vanaf alle domeinen toe te staan. Omdat hiermee echter toegang wordt toegestaan aan SWF-bestanden van alle domeinen om scriptbewerkingen uit te voeren op het aanroepende SWF-bestand, moet u de joker "*" voorzichtig gebruiken.

ActionScript bevat een tweede toestemmings-API met de naam Security.allowInsecureDomain(). Deze methode werkt hetzelfde als de methode Security.allowDomain() met het verschil dat wanneer de methode vanaf een SWF-bestand wordt aangeroepen dat door een beveiligde HTTPS-verbinding wordt aangeboden, de methode ook toegang tot het aanroepende SWF-bestand toestaat aan andere SWF-bestanden die worden aangeboden vanaf een onbeveiligd protocol, zoals HTTP. Het wordt vanwege de beveiliging echter niet aangeraden om bestanden in een beveiligd protocol (HTTPS) scriptbewerkingen op elkaar uit te laten voeren; als u dit wel toestaat kunt u beveiligde inhoud blootstellen aan snooping- en spoofing-aanvallen. Zo werken dit soort aanvallen: omdat de methode Security.allowInsecureDomain() toegang tot uw beveiligde HTTPS-gegevens toestaat aan SWF-bestanden die via HTTP-verbindingen worden aangeboden, kan een aanvaller die zich tussen de verbinding plaatst van de HTTP-server tot de gebruikers het HTTP-SWF-bestand vervangen met een eigen bestand dat vervolgens toegang verkrijgt tot uw HTTPS-gegevens.

Belangrijk: Code die wordt uitgevoerd in de sandbox van een AIR-toepassing, mag de methoden allowDomain() en allowInsecureDomain() van de klasse Security niet aanroepen.

Een andere belangrijke methode met betrekking tot de beveiliging is de methode Security.loadPolicyFile(), die ervoor zorgt dat Flash Player naar een bestand met interdomeinbeleid zoekt op een andere locatie dan de standaardlocatie. Zie Controlemiddelen voor websites (beleidsbestanden) voor meer informatie.