Gezamenlijke objecten

Flash Player 9 of hoger, Adobe AIR 1.0 of hoger

Flash Player biedt ondersteuning voor het werken met gezamenlijke objecten. Het betreft hier ActionScript-objecten die beschikbaar blijven buiten een SWF-bestand, hetzij lokaal in het bestandssysteem van een gebruiker of extern op een RTMP-server. Gezamenlijke objecten worden net als andere media in Flash Player ingedeeld in beveiligingssandboxen. Het sandboxmodel voor gezamenlijke objecten wijkt echter wel iets af, aangezien gezamenlijke objecten geen bronnen zijn die vanuit een extern domein kunnen worden benaderd. Gezamenlijke objecten worden daarentegen altijd opgehaald van een speciale opslaglocatie die is ingesteld voor het domein van het SWF-bestand dat methoden van de klasse SharedObject aanroept. Normaal gesproken is de opslaglocatie van een gezamenlijk object nog specifieker dan het domein van een SWF-bestand: elk SWF-bestand gebruikt standaard de opslaglocatie voor gezamenlijke objecten die specifiek is voor de gehele oorspronkelijke URL. Zie Gezamenlijke objecten voor meer informatie over gezamenlijke objecten.

Een SWF-bestand kan via de parameter localPath van de methoden SharedObject.getLocal() en SharedObject.getRemote() een opslaglocatie van gezamenlijke objecten gebruiken die aan slechts een deel van de URL is gekoppeld. Op deze manier kan het SWF-bestand de gezamenlijke objecten ook delen met andere SWF-bestanden uit andere URL’s. Zelfs als u de waarde '/' opgeeft voor de parameter localPath, wordt er een opslaglocatie van gezamenlijke objecten gebruikt die specifiek is voor het eigen domein.

Gebruikers kunnen de toegang tot gezamenlijke objecten beperken via het dialoogvenster Flash Player Settings of via Settings Manager. Standaard kunnen gezamenlijke objecten per domein maximaal 100 kB aan gegevens bevatten. Beheerders en gebruikers kunnen ook beperkingen instellen voor het schrijven naar het bestandssysteem. Zie Controlemiddelen voor beheerdersen Controlemiddelen voor gebruikers voor meer informatie.

U kunt instellen dat een gezamenlijk object beveiligd is door true op te geven voor de parameter secure van de methode SharedObject.getLocal() of SharedObject.getRemote(). De volgende punten zijn van belang voor de parameter secure:

  • Als deze parameter wordt ingesteld op true, wordt er in Flash Player een nieuw beveiligd gezamenlijk object gemaakt of wordt er een verwijzing naar een bestaand beveiligd gezamenlijk object opgehaald. Alleen SWF-bestanden die via HTTPS worden geleverd en SharedObject.getLocal() aanroepen met de parameter secure ingesteld op true hebben lees- en schrijftoegang tot dit beveiligde gezamenlijke object.

  • Als deze parameter wordt ingesteld op false, wordt er in Flash Player een nieuw gezamenlijk object gemaakt of wordt er een verwijzing opgehaald naar een bestaand gezamenlijk object, waartoe SWF-bestanden die via niet-HTTPS-verbindingen worden geleverd, lees- en schrijftoegang hebben.

Als het aanroepende SWF-bestand niet afkomstig is van een HTTPS-URL, heeft het opgeven van true voor de parameter secure van de methode SharedObject.getLocal() of SharedObject.getRemote() een uitzondering SecurityError tot gevolg.

De keuze van een opslaglocatie van gezamenlijke objecten is afhankelijk van de oorspronkelijke URL van een SWF-bestand. Dit is zelfs het geval in de twee situaties waarin een SWF-bestand niet afkomstig is van een eenvoudige URL: importladen en dynamisch laden. Importladen heeft betrekking op de situatie waarin een SWF-bestand wordt geladen terwijl de eigenschap LoaderContext.securityDomain van het bestand is ingesteld op SecurityDomain.currentDomain. In deze situatie heeft het geladen SWF-bestand een pseudo-URL die begint met het domein van het ladende SWF-bestand en verder bestaat uit de werkelijke oorspronkelijke URL. Dynamisch laden is het laden van een SWF-bestand met de methode Loader.loadBytes(). In deze situatie heeft het geladen SWF-bestand een pseudo-URL die begint met de volledige URL van het ladende SWF-bestand, gevolgd door een id die uit een geheel getal bestaat. Bij zowel importladen als dynamisch laden kan de pseudo-URL van een SWF-bestand worden gecontroleerd met de eigenschap LoaderInfo.url. De pseudo-URL wordt bij het kiezen van een opslaglocatie van gezamenlijke objecten op exact dezelfde manier verwerkt als een echte URL. U kunt voor een gezamenlijk object een waarde opgeven voor de parameter localPath waarin de pseudo-URL geheel of gedeeltelijk wordt gebruikt.

Gebruikers en beheerders kunnen desgewenst het gebruik van gezamenlijke objecten van derden uitschakelen. Het betreft hier het gebruik van gezamenlijke objecten door een SWF-bestand dat wordt uitgevoerd in een webbrowser en waarbij de oorspronkelijke URL van dat SWF-bestand afkomstig is uit een ander domein dan de URL in de adresbalk van de browser. Gebruikers en beheerders kunnen het gebruik van gezamenlijke objecten van derden uitschakelen vanwege privacyredenen. Het is dan namelijk niet mogelijk objecten te traceren buiten het eigen domein. Deze beperking is niet nodig als u ervoor zorgt dat een SWF-bestand dat gezamenlijke objecten gebruikt, alleen wordt geladen binnen HTML-paginastructuren die ervoor zorgen dat het SWF-bestand afkomstig is uit het domein dat wordt weergegeven in de adresbalk van de browser. Wanneer u probeert gezamenlijke objecten te gebruiken uit een SWF-bestand van derden en het gebruik van gezamenlijke objecten van derden is uitgeschakeld, resulteren de methoden SharedObject.getLocal() en SharedObject.getRemote() in null. Zie www.adobe.com/products/flashplayer/articles/thirdpartylso voor meer informatie.