Om du vill tillåta att programinnehåll ska kunna utföra säker korsskriptning på innehåll som lästs in från en annan plats än programinstallationskatalogen, kan du använda elementen
frame
eller
iframe
för att läsa in programinnehåll i samma säkerhetssandlåda som det externa innehållet. Om du inte behöver utföra korsskriptning på fjärrinnehåll men ändå vill läsa in en sida av programmet som är utanför programsandlådan, kan du använda samma teknik och ange
http://localhost/
eller något annat neutralt värde som ursprungsdomän.
AIR lägger till nya attribut,
sandboxRoot
och
documentRoot
, till det frame-element som gör att du kan ange om en programfil som är inläst i ramen ska mappas till en icke-programsandlåda. Filer som relaterar till en sökväg under
sandboxRoot
-URL:en blir i stället inlästa från
documentRoot
-katalogen. Av säkerhetsskäl behandlas programinnehåll som lästs in på det här sättet som om det var inläst från
sandboxRoot
-URL:en.
Egenskapen
sandboxRoot
anger den URL som ska användas för att bestämma i vilken sandlåda och domän som raminnehållet ska placeras. URL-schemat
file:
,
http:
eller
https:
måste användas. Om du anger en relativ URL ligger innehållet kvar i programsandlådan.
Egenskapen
documentRoot
anger den katalog som raminnehållet ska läsas in från. URL-schemat
file:
,
app:
eller
app-storage:
måste användas.
I följande exempel mappas innehåll som är installerat i
sandbox
-underkatalogen i programmet så att det körs i fjärrsandlådan och domänen
www.example.com
:
<iframe
src="http://www.example.com/local/ui.html"
sandboxRoot="http://www.example.com/local/"
documentRoot="app:/sandbox/">
</iframe>
Sidan
ui.html
kunde läsa in en javascript-fil från den lokala
sandbox
-mappen med hjälp av följande skripttagg:
<script src="http://www.example.com/local/ui.js"></script>
Den kunde också läsa in innehåll från en katalog på fjärrservern med hjälp av en script-tagg som den nedan:
<script src="http://www.example.com/remote/remote.js"></script>
sandboxRoot
-URL:en maskerar innehåll som finns på samma URL på fjärrservern. I exemplet ovan skulle du inte kunna få åtkomst till fjärrinnehåll på
www.example.com/local/
(eller någon av dess underkataloger), eftersom AIR mappar om begäran till den lokala programkatalogen. Begäran mappas om oavsett om den härleds från sidnavigering, från en XMLHttpRequest eller från något annat sätt att läsa in innehåll.