Bästa säkerhetsrutiner för utvecklare

Adobe AIR 1.0 och senare

Även om AIR-program byggs med hjälp av webbtekniker, är det viktigt att utvecklare observerar att de inte arbetar inuti webbläsarsäkerhetssandlådan. Detta innebär att det är möjligt att bygga AIR-program som kan skada det lokala systemet, antingen avsiktligt eller oavsiktligt. AIR försöker att minimera risken, men det finns fortfarande sätt att introducera svagheter. Detta avsnitt täcker viktiga potentiella osäkerheter.

Risk vid import av filer till programsäkerhetssandlådan

Filer som finns i programkatalogen tilldelas programsandlådan och har körtidens fullständiga behörigheter. Program som skriver till det lokala filsystemet rekommenderas att skriva till app-storage:/ . Denna katalog finns separat från programfilerna på användarens dator. Filerna tilldelas således inte programsandlådan och innebär därför en reducerad säkerhetsrisk. Utvecklare bör tänka på följande:

  • Inkludera endast en fil i en AIR-fil (i det installerade programmet) om det är nödvändigt.

  • Inkludera endast en skriptningsfil i en AIR-fil (i det installerade programmet) om du till fullo förstår dess beteende och om den är tillförlitlig.

  • Skriv inte till, eller modifiera inte, innehåll i programkatalogen. Körtiden förhindrar att program skriver eller modifierar filer och kataloger med URL-schemat app:/ genom att utlösa ett SecurityError-undantag.

  • Använd inte data från en nätverkskälla som parametrar till AIR-API-metoder som kan leda till kodkörning. Detta inkluderar användning av metoden Loader.loadBytes() och JavaScript-funktionen eval() .

Risk vid användning av en fjärrkälla för att bestämma sökvägar

Ett AIR-program kan komprometteras när det använder fjärrdata eller -innehåll. Av den anledningen bör du vara särskilt försiktig när du använder data från nätverket eller filsystemet. Tillförlitlighetsbördan ligger ytterst på utvecklaren och de nätverksanslutningar som han eller hon skapar, men det medför alltid en risk att läsa in externa data, och de bör inte användas som indata till känsliga operationer. Utvecklare uppmanas att undvika följande:

  • Använda data från en nätverkskälla för att bestämma ett filnamn

  • Använda data från en nätverkskälla för att konstruera en URL som programmet använder för att skicka privat information

Risk vid användning, lagring eller sändning av osäkra uppgifter

Att lagra användaruppgifter i det lokala filsystemet introducerar alltid risken att dessa uppgifter kan komprometteras. Utvecklare bör tänka på följande:

  • Kryptera autentiseringsuppgifterna som skrivs till det lokala filsystemet om de ska lagras lokalt. Körtiden innehåller en krypterad lagring som är unik för varje installerat program genom klassen EncryptedLocalStore. Läs mer i avsnittet Krypterad lokal lagringsplats .

  • Skicka inte okrypterade användaruppgifter till en nätverkskälla såvida inte källan är tillförlitlig och protokollen HTTPS: eller TLS (Transport Layer Security) används vid överföringen.

  • Specificera aldrig ett standardlösenord vid uppgiftsskapande - låt användarna skapa egna. användare som inte ändrar standardinställningen exponerar sina autentiseringsuppgifter för angripare som redan känner till det förvalda lösenordet.

Risk vid en nedgraderingsattack

Under programinstallation kontrollerar körtiden att det inte redan finns en installerad version av programmet. Om ett program redan är installerat, jämför körtiden versionssträngen mot den version som installeras. Om strängen är en annan kan användare välja att uppgradera installationen. Körtiden garanterar inte att den nyinstallerade versionen är nyare än den redan installerade versionen, bara att det är en annan version. En angripare kan distribuera en äldre version till användaren för att ta sig förbi en säkerhetssvaghet. Av den anledningen bör utvecklaren göra versionskontroller när programmet körs. Det är en god idé att låta program kontrollera nätverket efter nödvändiga uppdateringar. Även om en angripare får användaren att köra en gammal version, kommer den gamla versionen på så sätt att detektera att den behöver uppdateras. Användning av ett tydligt versionsschema för programmet gör också att det blir svårare att lura användare att installera en nedgraderad version.