Geliştiriciler için en iyi güvenlik uygulamaları

Adobe AIR 1.0 ve üstü

AIR uygulamaları web teknolojileri kullanılarak oluşturulmuş olsa da, geliştiricilerin tarayıcı güvenlik sanal alanı içinde çalışmadıklarını bilmeleri önemlidir. Bu, yerel sisteme istemli veya istemsiz zarar verebilecek AIR uygulamaları oluşturmanın mümkün olduğu anlamına gelir. AIR bu riski en aza indirmeye çalışmaktadır, ancak yine de güvenlik açıklarının kullanılabileceği yollar mevcuttur. Bu başlık, önemli olası tehlikeleri konu alır.

Dosyaları uygulama güvenlik sanal alanına aktarmakdan doğan risk

Uygulama dizininde bulunan dosyalar, uygulama sanal alanına atanır ve tüm çalışma zamanı ayrıcalıklarına sahiptir. Yerel dosya sistemine yazan uygulamaların app-storage:/ hedefine yazmaları önerilir. Dosyalar uygulama sanal alanına atanmadığından ve daha düşük bir güvenlik riski sunduğundan, bu dizin kullanıcının bilgisayarındaki uygulama dosyalarından ayrı olarak bulunur. Geliştiricilerin şunları dikkate alması önerilir:

  • Bir dosyayı, yalnızca gerekli olduğunda bir AIR dosyasına dahil edin (yüklenen uygulamada).

  • Bir komut dosyasını yalnızca davranışı tam olarak anlaşılır ve güvenilir olduğunda bir AIR dosyasına dahil edin (yüklenen uygulamada).

  • Uygulama dizinindeki içeriğe yazmayın veya bu içeriği değiştirmeyin. Çalışma zamanı, SecurityError istisnasını atarak, uygulamaların app:/ URL şemasını kullanarak dosyaları ve dizinleri yazmasını veya değiştirmesini engeller.

  • Kod yürütmesine neden olabilecek AIR API yöntemlerine ilişkin parametreler olan ağ kaynaklarından gelen verileri kullanmayın. Bu, Loader.loadBytes() yöntemini ve JavaScript eval() işlevini içerir.

Yolları belirlemek için harici bir kaynak kullanmaktan doğan risk

Harici veri veya içerik kullanımı sırasında, AIR uygulamasından ödün verilebilir. Bu nedenle, ağdan veya dosya sisteminden veri kullanırken özellikle dikkat edin. Güven sorumluluğu nihayetinde geliştiriciye ve kurduğu ağ bağlantılarına bağlıdır, ancak yabancı veriler yapıları gereği risklidir ve hassas işlemlerde girdi olarak kullanılmamalıdır. Geliştiriciler, aşağıdakilere karşı uyarılır:

  • Dosya adını belirlemek için bir ağ kaynağından verileri kullanma

  • Uygulamanın özel bilgi göndermek için kullandığı bir URL yapmak için bir ağ kaynağından verileri kullanma

Güvenli olmayan kimlik bilgilerinin kullanılması, saklanması veya iletilmesinden doğan risk

Kullanıcı kimlik bilgilerinin kullanıcının yerel dosya sisteminde saklanması, yapısı gereği bu kimlik bilgilerinden ödün verilebileceği riskini doğurur. Geliştiricilerin şunları dikkate alması önerilir:

  • Kimlik bilgilerinin yerel olarak saklanması gerekiyorsa, yerel dosya sistemine yazma sırasında kimlik bilgilerini şifreleyin. Çalışma zamanı, EncryptedLocalStore sınıfı aracılığıyla, yüklenen her uygulamaya benzersiz şifrelenmiş bir depo sağlar. Ayrıntılar için, bkz. Şifrelenmiş yerel depolama .

  • Kodlanmamış kullanıcı kimlik bilgilerini, kaynak güvenilir olana ve iletim HTTPS: ya da Aktarım Katmanı Güvenliği (TLS) protokollerini kullanana dek bir ağ kaynağına iletmeyin.

  • Kimlik bilgileri oluşturmada hiçbir zaman varsayılan bir parola belirlemeyin - kullanıcıların kendi parolalarını oluşturmalarına izin verin. Varsayılanı değişiklik olmadan kullanan kullanıcılar, kimlik bilgilerini varsayılan parolayı önceden bilen bir saldırgana göstermiş olur.

İndirgeme saldırısından doğan risk

Uygulama yükleme sırasında, çalışma zamanı uygulamanın bir sürümünün yüklü olup olmadığını kontrol eder. Bir uygulama önceden yüklenmişse, çalışma zamanı sürüm dizesini yüklenmekte olan uygulamanın sürümüyle karşılaştırır. Bu dize farklıysa, kullanıcı yüklemeyi yükseltmeyi seçebilir. Çalışma zamanı, yeni yüklenen sürümün eski sürümden daha yeni olacağını garanti etmez, yalnızca değişik olduğunu garanti eder. Saldırgan, bir güvenlik açığını atlatmak için kullanıcıya daha eski bir sürüm dağıtabilir. Bu nedenle, uygulama çalışırken geliştiricinin sürüm kontrolleri yapması önerilir. Uygulamaların gerekli güncellemeler için ağı kontrol etmesi, iyi bir fikirdir. Bu şekilde, saldırgan kullanıcının eski sürümü çalıştırmasını sağlasa bile, bu eski sürüm güncellenmesi gerektiğini anlayacaktır. Ayrıca, uygulamanız için açık bir sürüm belirleme şeması kullanmak, düşük bir sürüm yüklemeleri için kullanıcıların kandırılmasını zorlaştıracaktır.