De bestanden die u met de AIR-toepassing installeert, hebben toegang tot de API's van AIR. Om veiligheidsredenen heeft de inhoud van andere bronnen geen toegang tot deze API's. Voorbeeld: deze beperking voorkomt dat inhoud van een extern domein (bijvoorbeeld http://example.com) de inhoud van de bureaubladmap van de gebruiker (of nog erger) kan lezen.
Omdat beveiligingshiaten kunnen worden gebruikt door de functie
eval()
(en verwante API's) op te roepen, kan inhoud die met de toepassing wordt geïnstalleerd, deze methoden standaard niet gebruiken. Bepaalde Ajax-frameworks gebruiken echter de functie
eval()
en verwante API's.
Om inhoud goed te structureren zodat deze kan werken in een AIR-toepassing, moet u rekening houden met de beveiligingsbeperkingen voor inhoud van verschillende bronnen. Inhoud van verschillende locaties wordt in aparte beveiligingsclassificaties, sandboxen, geplaatst (zie
Beveiligingssandboxen
). Inhoud die met de toepassing wordt geïnstalleerd, wordt standaard in een sandbox geïnstalleerd die de
toepassingssandbox
wordt genoemd. Deze verleent toegang tot de API's van AIR. De toepassingssandbox is de veiligste sandbox, aangezien beperkingen voorkomen dat niet-vertrouwde code wordt uitgevoerd.
U kunt inhoud die met uw toepassing is geïnstalleerd, ook in een andere sandbox plaatsen. Inhoud in niet-toepassingssandboxen werkt in een beveiligde omgeving, zoals in een webbrowser. Voorbeeld: code in niet-toepassingssandboxen kan
eval()
en verwante methoden gebruiken (maar anderzijds heeft deze code geen toegang tot de API's van AIR). De runtime voorziet in manieren om inhoud in verschillende sandboxen veilig te laten communiceren (zonder bijvoorbeeld API's van AIR toegankelijk te maken voor niet-toepassingsinhoud). Zie
Cross-scripting van inhoud in verschillende beveiligingssandboxen
voor meer informatie.
Als u code oproept die niet in een sandbox kan worden gebruikt vanwege beveiligingsbeperkingen, geeft de runtime de foutmelding weer dat er in de runtime van Adobe AIR een beveiligingsfout betreffende JavaScript-code in de toepassingsbeveiligingssandbox is opgetreden.
Om deze fout te voorkomen, volgt u de coderingsrichtlijnen in de volgende sectie,
JavaScript-beveiligingsfouten voorkomen
.
Zie
HTML-beveiliging in Adobe AIR
voor meer informatie.