Güvenlik sanal alanlarıFlash Player 9 ve üstü, Adobe AIR 1.0 ve üstü İstemci bilgisayarlar birkaç kaynaktan; örneğin harici web sitelerden, yerel dosya sisteminden veya kurulmuş bir AIR uygulamasından gelen kod, içerik ile verilerin yer aldığı bağımsız dosyaları elde edebilirler. Flash Player ve AIR çalışma süreleri kod dosyalarını ve diğer kaynakları, paylaşılan nesneler, bitmap'ler, sesler, videolar ile veri dosyaları gibi diğer kaynakları, Flash Player'a yüklendikleri zamanki kaynaklarını esas alarak tek tek güvenlik sanal alanlarını belirler. İlerleyen bölümlerde belirli bir sanal alanda hangi kodun veya içeriğin yürütüleceğini belirleyen, çalışma zamanları tarafından yürütülen kurallar ele alınmıştır. Flash Player güvenliği hakkında daha fazla bilgi için, bkz. “Güvenlik” başlıklı Flash Player Developer Center konusu, www.adobe.com/go/devnet_security_tr. Uzak sanal alanlarFlashPlayer ve AIR çalışma zamanı internetten gelen varlıkları (SWF dosyaları dahil) orijin alanlarına denk gelen ayrı sanal alanlarda sınıflandırır. Örneğin, example.com öğesinden yüklenen varlıklar, foo.org öğesine yüklenen varlıklarınkinden farklı bir güvenlik sanal alanına yerleştirilecektir. Varsayılan olarak, bu dosyaların kendi sunucularındaki herhangi bir kaynağa erişme yetkisi vardır. Uzak SWF dosyalarının, URL ilke dosyaları ve Security.allowDomain() yöntemi gibi açık web sitesi ve yazar izinleriyle diğer etki alanlarındaki ek verilere erişmesine izin verilebilir. Ayrıntılar için, bkz. Web sitesi denetimleri (ilke dosyaları) ve Yazar (geliştirici) denetimleri. Uzak SWF dosyaları, yerel dosyaları ve kaynakları yükleyemez. Flash Player güvenliği hakkında daha fazla bilgi için, bkz. “Güvenlik” başlıklı Flash Player Developer Center konusu, www.adobe.com/go/devnet_security_tr. Yerel sanal alanlarYerel dosya, file: protokolü veya Universal Naming Convention (UNC) yolu kullanılarak başvurulan herhangi bir dosyayı açıklar. Yerel SWF dosyaları, dört yerel sanal alandan birine yerleştirilir:
Ağ iletişimiyle yerel ve dosya sistemiyle yerel sanal alanlar arasında iletişim kurulması ve dosya sistemiyle yerel ve uzak sanal alanlar arasında iletişim kurulması kesinlikle yasaktır. Bu tür bir iletişim izni, Flash Player'da çalışan bir uygulama veya kullanıcı ya da yönetici tarafından verilemez. Yerel HTML dosyaları ile yerel SWF dosyaları arasında herhangi bir yönde komut dosyası oluşturulması (örneğin, ExternalInterface sınıfı kullanılarak) için, hem HTML dosyasının hem de SWF dosyasının yerel güvenilen sanal alanda olması gerekir. Bunun nedeni, tarayıcılar için yerel güvenlik modellerinin Flash Player yerel güvenlik modelinden farklı olmasıdır. Ağ iletişimiyle yerel sanal alanda bulunan SWF dosyaları, dosya sistemiyle yerel sanal alanda bulunan SWF dosyalarını yükleyemez. Dosya sistemiyle yerel sanal alanda bulunan SWF dosyaları, ağ iletişimiyle yerel sanal alanda bulunan SWF dosyalarını yükleyemez. AIR uygulamasının sanal alanıAdobe AIR çalışma zamanı, Flash Player güvenlik sanal alanına uygulama sanal alanı adında ilave bir sanal alan ekler. Uygulamanın sanal alanına AIR uygulamasının yükünün bir bölümü olarak kurulan dosyalar. Uygulama tarafından yüklenen diğer bütün dosyaların, Flash Player güvenlik modeli tarafından belirtilmiş olanlara benzeyen güvenlik sınırlılıkları vardır. Uygulama yüklendiğinde, AIR paketinde bulunan tüm dosyalar kullanıcının bilgisayarındaki bir uygulama dizinine yüklenir. Geliştiriciler, koddaki bu dizine app:/ URL şeması (bkz. URI şemaları) yoluyla başburabilir. Uygulama dizin ağacındaki tüm dosyalar, uygulama çalıştığında uygulama sanal alanına atanır. Uygulama sanal alanındaki içerik, yerel dosya sistemiyle etkileşim dahil, bir AIR uygulamasının kullanabileceği tüm ayrıcalıklarla donatılmıştır. Çoğu AIR uygulaması, uygulamayı çalıştırmak için yalnızca yerel olarak yüklenen bu dosyaları kullanır. Ancak, AIR uygulamaları yalnızca uygulama dizinindeki dosyalarla kısıtlanmamıştır - tüm kaynaklardan tüm dosya türlerini yükleyebilir. Bu, kullanıcı bilgisayarındaki yerel dosyaların yanı sıra, yerel ağda ve İnternet'te bulunan kullanılabilir harici kaynaklardaki dosyaları da içerir. Dosya türünün güvenlik kısıtlamaları üzerinde etkisi yoktur; yüklenen HTML dosyaları, aynı kaynaktan yüklenen SWF dosyalarıyla aynı güvenlik ayrıcalıklarına sahiptir. Uygulama güvenlik sanal alanındaki içerik, diğer sanal alanlardaki içeriğin kullanımının engellendiği AIR API'lerine erişebilir. Örneğin, uygulamaya ilişkin uygulama tanımlayıcı dosyasının içeriğini döndüren air.NativeApplication.nativeApplication.applicationDescriptor özelliği, uygulama güvenlik sanal alanındaki içerikle kısıtlanmıştır. Başka bir kısıtlanmış API örneği, yerel dosya sistemine okuma ve yazma için yöntemler içeren FileStream sınıfıdır. Yalnızca uygulamanın güvenlik sanal alanındaki içerik tarafından kullanılabilen ActionScript API'leri, Adobe Flash Platformu için ActionScript 3.0 Başvurusu içinde AIR logosuyla gösterilir. Bu API'lerin diğer sanal alanlarda kullanılması, çalışma zamanının SecurityError istisnası atmasına neden olur. HTML içeriği (HTMLLoader nesnesindeki), tüm AIR JavaScript API'leri (AIRAliases.js dosyasının kullanımı sırasında window.runtime özelliği veya air nesnesi yoluyla kullanılabilen) uygulama güvenlik sanal alanındaki içerik tarafından kullanılabilir. Başka bir sanal alandaki HTML içeriği window.runtime özelliğine erişimi yoktur. Bu nedenle bu içerik AIR veya Flash Player API'lerine erişemez. AIR uygulamasının sanal alanında içerik yürütmenin ek sınırlılıkları:
AIR uygulamasının içindeki JavaScript'in sınırlılıklarıUygulama güvenlik sanal alanındaki içerikten farklı olarak uygulama dışı bir güvenlik sanal alanında yer alan JavaScript içeriği, dinamik olarak oluşturulan kodu yürütmek için her zaman eval() işlevini çağırabilir. Diğer taraftan, AIR uygulamasında uygulama dışı güvenlik sanal alanında JavaScript yürütmekle ilgili sınırlılıklar vardır. Bunlar:
Ayrıntılar için bkz. Farklı sanal alanlardaki içerik için kod kısıtlamaları. Yerel SWF dosyalarının sanal alan türünü ayarlamaBir bilgisayarın son kullanıcısı veya yöneticisi, yerel bir SWF dosyasına güven onayı verildiğini belirterek bu dosyanın hem yerel hem de ağdan, başka bir deyişle, tüm etki alanlarından veri yüklemesine izin verir. Bu özellik, Genel Flash Player Güven Onayı ve Kullanıcı Flash Player Güven Onayı dizinlerinde belirtilmiştir. Daha fazla bilgi için, bkz. Yönetimsel denetimler ve Kullanıcı denetimleri. Yerel sanal alanlar hakkında daha fazla bilgi almak için, bkz. Yerel sanal alanlar. Adobe Flash ProfessionalGeliştirme aracında SWF belgesinin yayınlama ayarlarını yaparak bir SWF dosyasını dosya sistemiyle yerel sanal alan için veya ağ iletişimiyle yerel sanal alan için konfigüre edebilirsiniz. Adobe FlexAdobe Flex derleyicisinde use-network bayrağını ayarlayarak bir SWF dosyasını dosya sistemiyle yerel sanal alan için veya ağ iletişimiyle yerel sanal alan için konfigüre edebilirsiniz. Daha fazla bilgi için, bkz. “Uygulama derleyicisi seçenekleri hakkında”, Adobe Flex 3 Uygulamaları Oluşturma ve Konuşlandırma. Security.sandboxType özelliğiBir SWF dosyasının yazarı, Flash Player veya AIR uygulamasının SWF dosyasını hangi tür sanal alana atadığını belirlemek için salt okunur statik Security.sandboxType özelliğini kullanabilir. Security sınıfı, aşağıdaki gibi, Security.sandboxType özelliğinin olası değerlerini temsil eden sabitleri içerir:
|
|