Funzioni di sicurezza sandboxFlash Player 9 e versioni successive, Adobe AIR 1.0 e versioni successive I computer client possono ottenere singoli file contenenti codice, contenuto e dati da varie fonti, ad esempio, siti Web esterni, un file system locale o un'applicazione AIR installata. I runtime di Flash Player e AIR assegnano singolarmente file di codice e altre risorse, quali oggetti condivisi, bitmap, file audio, video e di dati, a funzioni di sicurezza sandbox in base alla loro origine, nel momento in cui vengono caricati. Nelle sezioni che seguono vengono descritte le regole, applicate dai runtime, che determinano a che cosa può accedere un codice o contenuto eseguito in una data sandbox. Per ulteriori informazioni sulla sicurezza di Flash Player, vedete la sezione riguardante la sicurezza nel Centro per sviluppatori di Flash Player all'indirizzo www.adobe.com/go/devnet_security_it. Funzioni di sicurezza sandbox remoteI runtime Flash Player e AIR classificano le risorse (compresi i file SWF) di Internet in sandbox separate che corrispondono al loro dominio di origine. Ad esempio, le risorse caricate da example.com vengono inserite in funzioni di sicurezza sandbox diverse rispetto alle risorse caricate da foo.org. Per impostazione predefinita, questi file sono autorizzati ad accedere a risorse appartenenti al proprio server. Ai file SWF remoti può essere consentito l'accesso a dati aggiuntivi appartenenti ad altri domini tramite siti Web o specifiche autorizzazioni dell'autore, quali file di criteri degli URL e il metodo Security.allowDomain(). Per ulteriori informazioni, vedete Controlli del sito Web (file di criteri) e Controlli autore (sviluppatore). I file SWF remoti non possono caricare file o risorse locali. Per ulteriori informazioni sulla sicurezza di Flash Player, vedete la sezione riguardante la sicurezza nel Centro per sviluppatori di Flash Player all'indirizzo www.adobe.com/go/devnet_security_it. Funzioni di sicurezza sandbox localiSi definisce file locale qualunque file al quale si fa riferimento mediante il protocollo file: o un percorso UNC (Universal Naming Convention). I file SWF locali si trovano in una delle quattro sandbox locali:
Le comunicazioni tra la sandbox locale con rete e la sandbox locale con file system, così come le comunicazioni tra sandbox locale con file system e sandbox remote, sono assolutamente proibite. Le autorizzazioni per tali comunicazioni non possono essere concesse da un'applicazione in esecuzione in Flash Player o da utenti o amministratori. L'invio di script in entrambe le direzioni tra file HTML locali e file SWF locali (ad esempio, mediante la classe ExternalInterface) richiede che sia il file HTML che il file SWF si trovino nella stessa sandbox locale affidabile. I modelli di sicurezza locali dei browser infatti sono differenti dal modello di sicurezza locale di Flash Player. I file SWF nella sandbox locale con rete non possono caricare file SWF nella sandbox locale con file system. I file SWF nella sandbox locale con file system non possono caricare file SWF nella sandbox locale con rete. Sandbox dell'applicazione AIRIl runtime Adobe AIR aggiunge una sandbox aggiuntiva, denominata application, al modello sandbox di sicurezza di Flash Player. I file installati come parte di un'applicazione AIR si caricano nella sandbox dell'applicazione. Eventuali altri file caricati dall'applicazione hanno restrizioni di sicurezza corrispondenti a quelli specificati dal modello di sicurezza Flash Player normale. Durante l'installazione di un'applicazione, tutti i file inclusi in un pacchetto AIR vengono installati sul computer dell'utente in una directory dell'applicazione. Gli sviluppatori possono fare riferimento a questa directory nel codice utilizzando lo schema URL app:/ (consultate Schemi URI). Tutti i file presenti nella struttura di directory dell'applicazione vengono assegnati alla sandbox dell'applicazione al momento dell'esecuzione dell'applicazione. Al contenuto presente nella sandbox dell'applicazione sono concessi tutti i privilegi disponibili per un'applicazione AIR, compresa l'interazione con il file system locale. Molte applicazioni AIR utilizzano solo questi file installati localmente per la loro esecuzione. Tuttavia, le applicazioni AIR non sono limitate solo ai file contenuti nella directory dell'applicazione; infatti possono caricare qualsiasi tipo di file da qualsiasi origine, inclusi i file locali presenti nel computer dell'utente e i file dalle origini esterne disponibili, ad esempio quelli su una rete locale o su Internet. Il tipo di file non influisce delle restrizioni di sicurezza; i file HTML caricati dispongono degli stessi privilegi di sicurezza dei file SWF caricati dalla stessa origine. Il contenuto nella sandbox di sicurezza dell'applicazione dispone dell'accesso alle API AIR, il cui uso è invece impedito al contenuto di altre sandbox. La proprietà air.NativeApplication.nativeApplication.applicationDescriptor, ad esempio, che restituisce il contenuto del file del descrittore dell'applicazione per l'applicazione, è limitata al contenuto presente nella sandbox di sicurezza dell'applicazione. Un altro esempio di API con restrizioni è costituito dalla classe FileStream, che contiene i metodi per la lettura e la scrittura nel file system locale. Le API ActionScript disponibili solo per il contenuto presente nella sandbox di sicurezza dell'applicazione sono contrassegnate dal logo AIR in ActionScript 3.0 Reference for Adobe Flash Platform (Guida di riferimento di ActionScript 3.0 per la piattaforma Adobe Flash). L'uso di queste API in altre sandbox comporta la generazione di un'eccezione SecurityError da parte del runtime. Per il contenuto HTML (in un oggetto HTMLLoader), tutte le API JavaScript AIR (quelle disponibili tramite la proprietà window.runtime o l'oggetto air quando utilizzate il file AIRAliases.js) sono disponibili per il contenuto presente nella sandbox di sicurezza dell'applicazione. Il contenuto HTML in un'altra sandbox non dispone dell'accesso alla proprietà window.runtime, quindi non può accedere alle API AIR o Flash Player. Il contenuto in esecuzione all'interno della sandbox dell'applicazione AIR dispone delle restrizioni aggiuntive seguenti:
Restrizioni per JavaScript in AIRA differenza del contenuto presente nella sandbox di sicurezza dell'applicazione, al contenuto JavaScript in una sandbox di sicurezza non dell'applicazione è consentito chiamare la funzione eval() per eseguire il codice generato dinamicamente in qualsiasi momento. Tuttavia, esistono delle restrizioni su JavaScript in esecuzione in una sandbox di sicurezza non dell'applicazione in AIR, vale a dire:
Per maggiori dettagli, consultate Restrizioni relative al codice per il contenuto presente in diverse sandbox. Impostazione del tipo di sandbox per file SWF localiUn utente finale o l'amministratore di un computer possono classificare un file SWF locale come affidabile e consentire a tale file di caricare dati da tutti i domini, sia locali che di rete. Tale informazione viene specificata nelle directory Global Flash Player Trust e User Flash Player Trust. Per ulteriori informazioni, vedete Controlli amministratore e Controlli utente. Per ulteriori informazioni sulle sandbox locali, vedete Funzioni di sicurezza sandbox locali. Adobe Flash ProfessionalÈ possibile configurare un file SWF per la sandbox locale con file system o per la sandbox locale con rete configurando le impostazioni di pubblicazione del documento nello strumento di creazione. Adobe FlexÈ possibile configurare un file SWF per la sandbox locale con file system o per la sandbox locale con rete impostando il flag use-network nel compilatore di Adobe Flex. Per ulteriori informazioni, vedete “About the application compiler options” (Informazioni sulle opzioni del compilatore applicazioni) nel documento Building and Deploying Adobe Flex 3 Applications (Sviluppo e implementazione delle applicazioni Adobe Flex 3). Proprietà Security.sandboxTypeL'autore di un file SWF può utilizzare la proprietà statica di sola lettura Security.sandboxType per determinare a quale tipo di sandbox il runtime Flash Player o AIR ha assegnato il file SWF. La classe Security include costanti che rappresentano possibili valori della proprietà Security.sandboxType, come indicato di seguito:
|
|