Giden URL erişimini denetleme

Flash Player 9 ve üstü, Adobe AIR 1.0 ve üstü

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.

Daha fazla bilgi için

Giden URL erişimi hakkında daha fazla bilgi için, Adobe Flash Platformu için ActionScript 3.0 Başvurusu'ndaki aşağıdaki girişlere bakın: