Pakket | flash.data |
Klasse | public class EncryptedLocalStore |
Overerving | EncryptedLocalStore Object |
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0 |
ELS-gegevens kunnen niet worden gedeeld tussen toepassingen. De bedoeling van ELS is het mogelijk maken dat een toepassing opnieuw gemaakte items, zoals aanmeldingsgegevens en andere privégegevens, gemakkelijk kan opslaan. ELS-gegevens moeten niet worden beschouwd als permanente gegevens. Zie "Beperkingen van de gecodeerde lokale opslag" en "Tips en trucs" hieronder.
AIR-profielondersteuning: deze functie wordt niet ondersteund op AIR for TV-apparaten. Met de eigenschap EncryptedLocalStore.isSupported
kunt u testen op ondersteuning tijdens runtime. Zie AIR-profielondersteuning voor meer informatie over API-ondersteuning voor meerdere profielen.
AIR biedt een gecodeerde lokale opslagruimte (ELS) voor elke AIR-toepassing die op de computer of het apparaat van een gebruiker is geïnstalleerd. Hiermee kunt u gegevens die op de lokale vaste schijf van de gebruiker zijn opgeslagen opslaan en ophalen in een gecodeerde indeling die niet gemakkelijk kan worden ontcijferd door andere gebruikers. Er wordt een aparte gecodeerde lokale opslagruimte gebruikt voor elke AIR-toepassing en elke AIR-toepassing gebruikt een aparte gecodeerde lokale opslagruimte voor elke gebruikersaccount op de computer.
Gebruik de gecodeerde lokale opslagruimte om informatie in cache op te slaan die moet worden beveiligd, zoals aanmeldingsgegevens voor webservices. De ELS is geschikt om informatie op te slaan die privé moet blijven en waartoe andere gebruikers dus geen toegang mogen hebben. De ELS schermt de gegevens echter niet af van andere processen die onder dezelfde gebruikersaccount worden uitgevoerd. De ELS is dus niet geschikt om geheime toepassingsgegevens, zoals DRM- of coderingssleutels, te beveiligen.
AIR maakt in Windows van DPAPI, in Mac OS en iOS van KeyChain en in Linux van KeyRing of KWallet gebruik om de gecodeerde lokale opslag te koppelen aan elke toepassing en gebruiker. De gecodeerde lokale opslagruimte gebruikt AES-CBC 128-bits codering.
Op Android worden de gegevens die door de klasse EncryptedLocalStorage zijn opgeslagen niet gecodeerd. De gegevens worden in plaats daarvan beveiligd door beveiliging op gebruikersniveau die wordt verschaft door het besturingssysteem. Het Android-besturingssysteem wijst een eigen gebruikers-id toe aan elke toepassing. Toepassingen kunnen alleen hun eigen bestanden openen, plus bestanden die zijn gemaakt op openbare locaties (zoals een verwijderbare opslagkaart). Op Android-apparaten met rooting hebben toepassingen met rootingrechten wel toegang tot de bestanden van andere toepassingen. Op een apparaat met rooting verschaft gecodeerde lokale opslag dus minder goede gegevensbeveiliging dan op een apparaat zonder rooting.
De gegevens in de gecodeerde lokale opslagruimte zijn alleen beschikbaar voor inhoud uit AIR-toepassingen in de beveiligingssandbox van de toepassing.
Als u een AIR-toepassing bijwerkt, behoudt de bijgewerkte versie toegang tot alle bestaande gegevens in de gecodeerde lokale opslagruimte, tenzij:
- De items zijn toegevoegd met de parameter
stronglyBound
ingesteld optrue
- U hebt de AIR 3.2-naamruimte bijgewerkt naar AIR 3.3 (de fysieke locatie van de gecodeerde lokale opslag is gewijzigd tussen AIR 3.2 en AIR 3.3 voor zowel Mac-OS als Windows)
- De bestaande versie en de updateversie allebei worden gepubliceerd vóór AIR 1.5.3 en de update wordt ondertekend met een migratiehandtekening
Beperkingen van de gecodeerde lokale opslagruimte
De gegevens in de gecodeerde lokale opslagruimte worden beveiligd door de accountgegevens waarmee de gebruiker zich bij het besturingssysteem aanmeldt. Andere entiteiten hebben alleen toegang tot de gegevens in de opslagruimte als zij zich als de betreffende gebruiker kunnen aanmelden. De gegevens zijn echter wel toegankelijk voor andere toepassingen die worden uitgevoerd door een geverifieerde gebruiker. Toepassingsgegevens die geheim moeten blijven voor gebruikers, zoals sleutels voor licenties of DRM (Digital Rights Management), zijn dus niet beveiligd. Voor de opslag van dergelijke gegevens is de ELS geen geschikte locatie. De ELS is alleen geschikt voor de opslag van privégegevens van een gebruiker, zoals wachtwoorden.
Gegevens in de ELS kunnen om verschillende redenen verloren gaan. De gebruiker kan de installatie van de toepassing bijvoorbeeld ongedaan maken en het gecodeerde bestand verwijderen. Het is ook mogelijk dat de uitgever-id is gewijzigd als gevolg van een update. Beschouw de ELS dus als privécache, niet als permanente gegevensopslag.
De parameter stronglyBound
is vervangen en mag niet worden ingesteld op true
. Als de parameter op true
wordt ingesteld, worden de gegevens niet extra beveiligd. De toegang tot de gegevens gaat echter verloren als de toepassing wordt bijgewerkt, zelfs als de uitgever-id gelijk blijft.
De gecodeerde lokale opslag kan trager worden als de opgeslagen gegevens groter zijn dan 10MB.
Wanneer u de installatie van een AIR-toepassing ongedaan maakt, worden de gegevens in de gecodeerde lokale opslagruimte niet verwijderd.
Tips en trucs voor het gebruik van de ELS
U kunt de ELS het beste op de volgende manier gebruiken:
- Gebruik de ELS om gevoelige gebruikersgegevens op te slaan, zoals wachtwoorden (stel
stronglyBound
in opfalse
) - Gebruik de ELS niet om geheime toepassingsgegevens op te slaan, zoals DRM-sleutels en licentietokens
- Zorg ervoor dat uw toepassing de gegevens die in de ELS zijn opgeslagen opnieuw kan maken als de ELS-gegevens verloren gaan. Bijvoorbeeld door de gebruiker te vragen zijn of haar verificatiegegevens voor de account opnieuw in te voeren als dat nodig is.
- Gebruik de parameter
stronglyBound
niet. - Als u
stronglyBound
toch optrue
instelt, migreer dan geen opgeslagen items tijdens een update. U kunt de items na de update wel opnieuw maken. - Sla alleen relatief kleine hoeveelheden gegevens op. Gebruik voor grote hoeveelheden gegevens een AIR-SQL-database met codering.
Items in de gecodeerde lokale opslagruimte worden aangeduid met een tekenreeks. Alle items worden opgeslagen als bytearraygegevens.
Eigenschap | Gedefinieerd door | ||
---|---|---|---|
constructor : Object
Verwijzing naar het klasseobject of de constructorfunctie van een bepaalde objectinstantie. | Object | ||
isSupported : Boolean [statisch] [alleen-lezen]
De eigenschap isSupported wordt ingesteld op true als de EncryptedLocalStore-klasse op het huidige platform wordt ondersteund. Als dit niet het geval is, wordt de eigenschap ingesteld op false. | EncryptedLocalStore |
Methode | Gedefinieerd door | ||
---|---|---|---|
[statisch]
De gegevens die overeenkomen met de opgegeven naam. | EncryptedLocalStore | ||
Geeft aan of voor een object een opgegeven eigenschap is gedefinieerd. | Object | ||
Geeft aan of een instantie van de klasse Object zich in de prototypeketen van het object bevindt dat als parameter is opgegeven. | Object | ||
Geeft aan of de opgegeven eigenschap bestaat en kan worden opgesomd. | Object | ||
[statisch]
Verwijdert het item met de opgegeven naam uit de gecodeerde lokale opslagruimte. | EncryptedLocalStore | ||
[statisch]
Wist de hele gecodeerde lokale opslagruimte, waarbij alle gegevens worden verwijderd. | EncryptedLocalStore | ||
[statisch]
Slaat een ByteArray-object op onder de opgegeven naam. | EncryptedLocalStore | ||
Stelt de beschikbaarheid van een dynamische eigenschap voor lusbewerkingen in. | Object | ||
Geeft de tekenreeksweergave van dit object weer, geformatteerd volgens de locatiespecifieke conventies. | Object | ||
Retourneert een tekenreeksrepresentatie van het opgegeven object. | Object | ||
Retourneert de primitieve waarde van het opgegeven object. | Object |
isSupported | eigenschap |
isSupported:Boolean
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 2 |
De eigenschap isSupported
wordt ingesteld op true
als de EncryptedLocalStore-klasse op het huidige platform wordt ondersteund. Als dit niet het geval is, wordt de eigenschap ingesteld op false
.
Implementatie
public static function get isSupported():Boolean
getItem | () | methode |
public static function getItem(name:String):ByteArray
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0 |
De gegevens die overeenkomen met de opgegeven naam.
Als er geen item met de opgegeven naam bestaat, retourneert deze methode null
.
Parameters
name:String — De naam van het item in de gecodeerde lokale opslagruimte.
|
ByteArray — De gegevens in de bytearray. Als er geen gegevens zijn voor de opgegeven naam , retourneert de methode null .
|
Gegenereerde uitzondering
ArgumentError — De waarde van name is null of een lege tekenreeks.
|
removeItem | () | methode |
public static function removeItem(name:String):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0 |
Verwijdert het item met de opgegeven naam uit de gecodeerde lokale opslagruimte.
Parameters
name:String — De naam van het item in de gecodeerde lokale opslagruimte.
|
Gegenereerde uitzondering
ArgumentError — De waarde van name is null of een lege tekenreeks.
|
reset | () | methode |
public static function reset():void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0 |
Wist de hele gecodeerde lokale opslagruimte, waarbij alle gegevens worden verwijderd.
setItem | () | methode |
public static function setItem(name:String, data:ByteArray, stronglyBound:Boolean = false):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0 |
Slaat een ByteArray-object op onder de opgegeven naam.
Parameters
name:String — De naam van het item in de gecodeerde lokale opslagruimte.
| |
data:ByteArray — De gegevens.
| |
stronglyBound:Boolean (default = false ) — (vervangen) De parameter stronglyBound moet worden ingesteld op false (de standaardwaarde). Als deze parameter wordt ingesteld op true , kan het opgeslagen item niet worden opgehaald als toepassingsbestanden worden gewijzigd. Als een gebruiker bijvoorbeeld een update van uw toepassing installeert, kan de bijgewerkte toepassing de stronglyBound-gegevens die eerder naar de gecodeerde lokale opslagruimte zijn geschreven, niet lezen.
|
Gegenereerde uitzondering
ArgumentError — De waarde van name is null of een lege tekenreeks.
| |
ArgumentError — De waarde data is 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");
Wed Jun 13 2018, 11:42 AM Z