Pacchetto | flash.data |
Classe | public class EncryptedLocalStore |
Ereditarietà | EncryptedLocalStore Object |
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0 |
I dati ELS non possono essere condivisi tra applicazioni diverse. L’intento di ELS è quello di consentire a un’applicazione di memorizzare facilmente gli oggetti ricreati, ad esempio le credenziali di accesso e altre informazioni private. I dati ELS non devono essere considerati come permanenti; vedete "Limiti dell’archivio locale crittografato" e "Procedure ottimali per l’uso dell’archivio ELS", di seguito.
Supporto profili AIR: questa funzione non è supportata nei dispositivi AIR per TV. È possibile verificare se la funzionalità è supportata in fase runtime utilizzando la proprietà EncryptedLocalStore.isSupported
. Per ulteriori informazioni sul supporto delle API tra più profili, vedete Supporto dei profili AIR.
AIR fornisce un archivio dati locali crittografati (ELS) per ogni applicazione AIR installata sul computer o sul dispositivo di un utente. In questo modo, potete salvare e recuperare i dati memorizzati sul disco rigido locale dell'utente in un formato crittografato che non può essere facilmente decifrato da altri utenti. Un archivio dati locali crittografati separato viene utilizzato per ogni applicazione AIR, e ogni applicazione AIR utilizza un archivio locali crittografato per ogni account utente sul computer.
Utilizzate l'archivio locale crittografato per memorizzare in cache le informazioni che è necessario proteggere, quali le credenziali di accesso per i servizi Web. L'archivio ELS è indicato per memorizzare informazioni che devono rimanere private e nascoste agli altri utenti. Tuttavia, non protegge i dati da altri processi eseguiti dallo stesso account utente. Non è quindi adatto per proteggere i dati di un'applicazione, ad esempio i dati DRM o le chiavi di crittografia.
Per associare l'archivio locale crittografato a ogni applicazione e utente, AIR usa DPAPI in Windows, KeyChain in Mac OS e iOS e KeyRing o KWallet in Linux. L’archivio locale crittografato utilizza la crittografia AES-CBC a 128 bit.
Su Android, i dati memorizzati dalla classe EncryptedLocalStorage non sono crittografati. Sono invece protetti dalla sicurezza a livello di utente fornita dal sistema operativo. Il sistema operativo Android assegna a ogni applicazione un ID utente distinto. Le applicazioni possono accedere esclusivamente ai propri file e ai file creati in percorsi pubblici (quali schede di memoria rimovibili). Tenete presente che sui dispositivi Android sui quali è stato eseguito il rooting, le applicazioni eseguite con privilegi root possono accedere ai file di altre applicazioni. Di conseguenza, su un dispositivo rooted, il livello di protezione dei dati fornito dall’archivio locale crittografato non è altrettanto elevato quanto quello fornito dall’archivio locale di dispositivi non originari.
Le informazioni nell'archivio locale crittografato sono disponibili solo per il contenuto dell'applicazione AIR nella funzione di sicurezza sandbox dell'applicazione.
Se aggiornate un'applicazione AIR, la versione aggiornata conserva i dati dell'archivio locale crittografato a meno che:
- Gli elementi non siano stati aggiunti con il parametro
stronglyBound
impostato sutrue
- Avete eseguito l’aggiornamento dallo spazio dei nomi di AIR 3.2 a quello di AIR 3.3 (la posizione fisica dell’archivio locale crittografato è cambiata da AIR 3.2 a AIR 3.3, sia per Mac OS che per Windows)
- La versione corrente e quella aggiornata non siano state entrambe pubblicate prima di AIR 1.5.3 e l'aggiornamento sia stato firmato con una firma di migrazione
Limiti dell'archivio locale crittografato
I dati dell'archivio locale crittografato sono protetti dalle credenziali dell'account del sistema operativo dell'utente. Altre entità non possono accedere ai dati dell'archivio a meno che non accedano a tale account. Tuttavia, i dati non sono protetti dall'accesso di altre applicazioni eseguite da un utente autenticato. Quindi, i dati della vostra applicazione che volete mantenere segreti e nascosti agli altri, ad esempio i codici di licenza o i dati DRM, non sono al sicuro. L'archivio ELS non è una posizione adeguata in cui memorizzare tali informazioni. È appropriato solo per l'archiviazione dei dati privati di un utente, ad esempio le password.
La perdita dei dati dell'archivio ELS si può verificare in varie circostanze. Ad esempio, l'utente potrebbe disinstallare l'applicazione ed eliminare il file crittografato. Oppure, l'ID editore potrebbe cambiare a seguito di un aggiornamento. Di conseguenza l'archivio ELS deve essere utilizzato come una memoria privata, non come un archivio dati permanente.
Il parametro stronglyBound
è stato dichiarato obsoleto e non deve essere impostato su true
. L'impostazione di questo parametro su true
non garantisce una protezione supplementare dei dati. Allo stesso tempo, l'accesso ai dati diventa impossibile dopo un aggiornamento dell'applicazione, anche se l'ID editore rimane lo stesso.
L'esecuzione dell'archivio locale crittografato potrebbe risultare più lenta se i dati memorizzati superano 10 MB.
Quando disinstallate un'applicazione AIR, il programma di disinstallazione non elimina i dati memorizzati nell'archivio locale crittografato.
Procedure ottimali per l’uso dell’archivio ELS
Per l'uso dell'archivio ELS sono consigliate le seguenti modalità:
- Utilizzate l'archivio ELS per memorizzare dati utente sensibili come password (impostando
stronglyBound
sufalse
) - Non utilizzate l'archivio ELS per memorizzare dati riservati delle applicazioni come chiavi DRM o token di licenza
- Prevedete un modo in cui l'applicazione possa ricostituire i dati dell'archivio ELS in caso di perdita di tali dati. Ad esempio, potreste richiedere all'utente di reinserire le credenziali dell'account in caso di necessità.
- Non utilizzate il parametro
stronglyBound
. - Se invece decidete di impostare
stronglyBound
sutrue
, non eseguite la migrazione dei dati archiviati durante un aggiornamento. Ricostituite invece i dati dopo l'aggiornamento. - Archiviate solo quantità relativamente piccole di dati. Per grandi volumi di dati, utilizzate un database SQL AIR con crittografia.
Gli elementi di un archivio locale crittografato vengono identificati con una stringa. Tutti gli elementi vengono memorizzati sotto forma di dati di array di byte.
Altri esempi
Proprietà | Definito da | ||
---|---|---|---|
constructor : Object
Un riferimento all'oggetto classe o alla funzione di costruzione per una determinata istanza di oggetto. | Object | ||
isSupported : Boolean [statico] [sola lettura]
La proprietà isSupported è impostata su true se la classe EncryptedLocalStore è supportata nella piattaforma corrente, altrimenti è impostata su false. | EncryptedLocalStore |
Metodo | Definito da | ||
---|---|---|---|
[statico]
Il dato corrispondente al nome specificato. | EncryptedLocalStore | ||
Indica se per un oggetto è definita una proprietà specifica. | Object | ||
Indica se un'istanza della classe Object si trova nella catena di prototipi dell'oggetto specificato come parametro. | Object | ||
Indica se la proprietà specificata esiste ed è enumerabile. | Object | ||
[statico]
Rimuove l'elemento con il nome specificato dall'archivio locale crittografato. | EncryptedLocalStore | ||
[statico]
Cancella l'intero archivio locale crittografato, eliminando tutti i dati. | EncryptedLocalStore | ||
[statico]
Memorizza un oggetto ByteArray con il nome specificato. | EncryptedLocalStore | ||
Imposta la disponibilità di una proprietà dinamica per le operazioni cicliche. | Object | ||
Restituisce la rappresentazione in formato stringa di questo oggetto, formattato in base alle convenzioni specifiche per le versioni localizzate. | Object | ||
Restituisce la rappresentazione in formato stringa dell'oggetto specificato. | Object | ||
Restituisce il valore di base dell'oggetto specificato. | Object |
isSupported | proprietà |
isSupported:Boolean
[sola lettura] Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 2 |
La proprietà isSupported
è impostata su true
se la classe EncryptedLocalStore è supportata nella piattaforma corrente, altrimenti è impostata su false
.
Implementazione
public static function get isSupported():Boolean
getItem | () | metodo |
public static function getItem(name:String):ByteArray
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0 |
Il dato corrispondente al nome specificato.
Se un elemento con il nome specificato non esiste, questo metodo restituisce null
.
Parametri
name:String — Il nome dell'elemento nell'archivio locale crittografato.
|
ByteArray — I dati ByteArray. Se non sono presenti dati per il nome fornito, il metodo restituisce null .
|
Genera
ArgumentError — Il valore name è null o una stringa vuota.
|
removeItem | () | metodo |
public static function removeItem(name:String):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0 |
Rimuove l'elemento con il nome specificato dall'archivio locale crittografato.
Parametri
name:String — Il nome dell'elemento nell'archivio locale crittografato.
|
Genera
ArgumentError — Il valore name è null o una stringa vuota.
|
reset | () | metodo |
public static function reset():void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0 |
Cancella l'intero archivio locale crittografato, eliminando tutti i dati.
setItem | () | metodo |
public static function setItem(name:String, data:ByteArray, stronglyBound:Boolean = false):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0 |
Memorizza un oggetto ByteArray con il nome specificato.
Parametri
name:String — Il nome dell'elemento nell'archivio locale crittografato.
| |
data:ByteArray — I dati.
| |
stronglyBound:Boolean (default = false ) — (obsoleto) Il parametro stronglyBound deve essere impostato su false (il valore predefinito). Se impostato su true , l'elemento memorizzato non può essere recuperato se dei file dell'applicazione sono stati modificati. Ad esempio, se un utente installa un aggiornamento dell'applicazione, questa non sarà in grado di leggere i dati vincolati precedentemente scritti nell'archivio locale crittografato.
|
Genera
ArgumentError — Il valore name è null o una stringa vuota.
| |
ArgumentError — Il valore data è null .
|
var str:String = "Bob"; var bytes:ByteArray = new ByteArray(); bytes.writeUTFBytes(str); EncryptedLocalStore.setItem("firstName", bytes); var storedValue:ByteArray = EncryptedLocalStore.getItem("firstName"); trace(storedValue.readUTFBytes(storedValue.length)); // "Bob" EncryptedLocalStore.removeItem("firstName");
Tue Jun 12 2018, 02:44 PM Z