Aşağıdaki API'lerin kullanımıyla giden komut dosyası oluşturma ve URL erişimi (HTTP URL'leri, mailto:, vb. kullanılarak) gerçekleştirilir:
-
flash.system.fscommand()
işlevi
-
ExternalInterface.call()
yöntemi
-
flash.net.navigateToURL()
işlevi
Yerel dosya sisteminden yüklenen içerik için, bu yöntemlere yapılan çağrılar ancak kod ve içerdiği web sayfası (varsa) yerel güvenilir veya AIR uygulaması güvenlik sanal alanları içerisindeyken başarılı olur. İçerik, ağ iletişimiyle yerel veya dosya sistemiyle yerel sanal alandaysa bu yöntemlere çağrılar başarısız olur.
Yerel olarak çalıştırılmayan kodlar için bu API’lerin tümü, aşağıda açıklanan AllowScriptAccess parametresinin değerine bağlı olarak, gömülü oldukları web sayfasıyla iletişim kurabilir.
flash.net.navigateToURL()
işlevi, yalnızca SWF dosyasının gömülü olduğu sayfayla değil, ek olarak herhangi bir açık tarayıcı penceresi veya karesiyle de iletişim kurma yeteneğine sahiptir. Bu işlevsellik hakkında daha fazla bilgi almak için, bkz.
navigateToURL() işlevini kullanma
.
Bir SWF dosyasını yükleyen HTML kodundaki
AllowScriptAccess
parametresi, SWF dosyasından giden URL erişimini gerçekleştirme yeteneğini denetler. PARAM veya EMBED etiketinin içinde bu parametreyi ayarlayın.
AllowScriptAccess
için herhangi bir parametre ayarlanmazsa, SWF dosyası ve HTML sayfası yalnızca her ikisi de aynı etki alanından geliyorsa iletişim kurabilir.
AllowScriptAccess
parametresi üç olası değerden yalnızca birine sahip olabilir:
"always"
,
"sameDomain"
veya
"never"
.
-
AllowScriptAccess
"always"
olduğunda, SWF dosyası, HTML sayfasından farklı bir etki alanından gelse de, gömülü olduğu HTML sayfasıyla iletişim kurabilir.
-
AllowScriptAccess
"sameDomain"
olduğunda, SWF dosyası yalnızca HTML sayfasıyla aynı etki alanından geliyorsa, gömülü olduğu HTML sayfasıyla iletişim kurabilir. Bu değer
AllowScriptAccess
için varsayılan değer değildir. Bir etki alanında barındırılan SWF dosyasının, başka bir etki alanından gelen HTML sayfasındaki bir komut dosyasına erişmesini önlemek için bu ayarı kullanın veya
AllowScriptAccess
için bir değer ayarlamayın.
-
AllowScriptAccess
"never"
olduğunda, SWF dosyası herhangi bir HTML sayfasıyla iletişim kuramaz. Adobe Flash CS4 Professional'ın piyasaya sürülmesinden beri bu değerin kullanımına itiraz edildi. Kendi etki alanınızdan güvenilmeyen SWF dosyaları sunmuyorsanız bu önerilmez ve gerekli de değildir. Güvenilmeyen SWF dosyaları sunmanız gerekmiyorsa, Adobe ayrı bir alt etki alanı oluşturup tüm güvenilmeyen içeriği oraya yerleştirmenizi önerir.
Burada, giden bir URL'nin farklı bir etki alanına erişmesine izin vermek için
AllowScriptAccess
etiketinin ayarlanmasına örnek verilmektedir:
<object id='MyMovie.swf' classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://download.adobe.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0' height='100%' width='100%'>
<param name='AllowScriptAccess' value='always'/>
<param name='src' value=''MyMovie.swf'/>
<embed name='MyMovie.swf' pluginspage='http://www.adobe.com/go/getflashplayer' src='MyMovie.swf' height='100%' width='100%' AllowScriptAccess='never'/>
</object>
navigateToURL() işlevini kullanma
Yukarıda açıklanan
allowScriptAccess
parametresi tarafından belirtilen güvenlik ayarına ek olarak,
navigateToURL()
işlevi ikinci bir isteğe bağlı parametreye sahiptir -
target
.
target
parametresi, URL isteğinin gönderileceği bir HTML penceresinin veya karesinin adını belirtmek için kullanılabilir. Bu istekler için ek güvenlik kısıtlamaları uygulanır ve bu kısıtlamalar,
navigateToURL()
öğesinin komut dosyası oluşturma deyimi olarak mı yoksa komut dosyası oluşturmama deyimi olarak mı kullanıldığına bağlı olarak değişiklik gösterir.
navigateToURL("javascript: alert('Hello from Flash Player.')")
gibi, komut dosyası oluşturma deyimleri için şu kurallar geçerlidir.
-
SWF dosyası yerel olarak güvenilen bir dosyaysa, istek başarılı olur.
-
Hedef, SWF dosyasının gömülü olduğu HTML sayfasıysa, yukarıda açıklanan
allowScriptAccess
kuralları geçerli olur.
-
Hedef, SWF dosyasıyla aynı etki alanından yüklenmiş içeriği barındırıyorsa, istek başarılı olur.
-
Hedef, SWF dosyasından farklı bir etki alanından yüklenmiş içeriği barındırıyorsa ve önceki iki koşul da karşılanmamışsa, istek başarısız olur.
Komut dosyası oluşturmama deyimleri için (örn. HTTP, HTTPS ve
mailto:
), şu koşulların tümü geçerli olursa istek başarısız olur:
-
Hedef,
"_top"
veya
"_parent"
özel anahtar sözcüklerinden biriyse ve
-
SWF dosyası, farklı bir etki alanından barındırılan bir web sitesindeyse ve
-
SWF dosyası,
"always"
dışındaki bir
allowScriptAccess
değeriyle gömülüyse.