V aplikaci Flash Player nefungují sokety

V případě verzí aplikace Adobe Flash Player novějších než 9.0.115.0 nemusí jakékoli z následujících konfigurací fungovat podle předpokladu:

  • Soubor SWF se pokusí o připojení soketu nebo připojení XMLSocket zpět k vlastnímu hostiteli, aniž by došlo k volání metody loadPolicyFile za účelem načtení souboru zásad soketu.
  • Soubor SWF se pokusí o připojení soketu nebo připojení XMLSocket zpět k vlastnímu hostiteli a načte soubor zásad, který neuvádí vlastní doménu mezi povolenými doménami.
  • Soubor SWF se pokusí o připojení soketu nebo připojení XMLSocket zpět k libovolnému hostiteli, a to se souborem zásad HTTP udělujícím oprávnění.

Pokyny ke stanovení toho, zda má tato změna vliv na váš web, najdete v části Diagnostika.

Příčina

Ve verzích aplikace Flash Player novějších než 9.0.115.0 jsou změněny požadavky na oprávnění u připojení soketů a soubory zásad HTTP již neautorizují připojení soketů. Aplikace Flash Player obsahuje dva typy souborů zásad:

  • Soubory zásad HTTP, což jsou soubory crossdomain.xml na serveru, které definují, zda mohou soubory SWF z jiných domén načíst obsah daného serveru.
  • Soubory zásad soketů, které definují porty, ke kterým se může aplikace Flash Player připojit pomocí připojení soketu nebo připojení XMLSocket.

Ve starších verzích nebyl soubor zásad soketu, což je soubor zásad nasazený soketem, vyžadován pro připojení k portům vyšším než 1024, a to v těchto případech:

  • Pokud doména, která oblsuhovala soubor SWF, byla stejná jako doména připojení soketu.
  • Pokud hostitelská doména hostovala soubor crossdomain.xml.

Tato dřívější konfigurace představovala pro zákazníky riziko, protože stále vyšší počet důležitých služeb je obsluhován z portů vyšších než 1024. Tato změna také pomáhá omezit možnost útoku v podobě převazby DNS, který využívá sokety aplikace Flash Player k dosažení hostitele oběti. Za účelem omezení tohoto problému nyní aplikace Flash Player vyžaduje soubor zásad soketů pro všechna připojení soketů, bez ohledu na cílový port a přítomnost souboru crossdomain.xml. Nyní existuje pevné hlavní umístění souborů zásad soketů v portu 843. Soubor zásad v tomto portu bude moci definovat metazásady, které definují, zda jsou v hostiteli povoleny jiné soubory zásad soketů. Ve výchozím nastavení jsou schváleny všechny soubory zásad soketů.

Pokud bylo dříve možné připojit soubory SWF k jejich původnímu hostiteli v portech vyšších než 1024, protože byl přítomen soubor crossdomain.xml, nyní je nutné mít soubor zásad soketů. Soubor zásad soketů lze obsluhovat z hlavního portu zásad soketů (843) nebo z portu, který je stejný jako připojení soketu.

Diagnostika

Pomocí následujících informací stanovíte, zda má tato změna vliv na váš web. V aplikaci Flash Player 9.0.115.0 bylo zavedeno protokolování souborů zásad, což je nová funkce. Protokol souborů zásad zobrazuje zprávy pro každou událost týkající se souborů zásad: pokusy o jejich načtení, jejich úspěšná a neúspěšná zpracování a výsledky požadavků, které na nich závisejí. Úplný odkaz na zprávy protokolů souborů zásad najdete v dodatku B článku o změnách souborů zásad v aplikaci Flash Player 9 a 10.

Použití protokolu souborů zásad:

  1. Nainstalujte ladicí verzi aplikace Flash Player 9.0.115.0 nebo novější. Můžete použít libovolný typ aplikace Flash Player: ovládací prvek ActiveX, zásuvný modul nebo samostatnou verzi. Ladicí verzi aplikace Flash Player můžete získat stažením souborů v centru podpory aplikace Flash Player.
  2. Určete umístění konfiguračního souboru mm.cfg. Jde o obecný ladicí konfigurační soubor, který je ladicími verzemi aplikace Flash Player čten při spuštění. Soubor mm.cfg se nachází v domovském adresáři. Například:

    • Windows: C:\Documents and Settings\username
    • Windows Vista: C:\Users\username
    • Mac OS a Linux: /home/username
  3. Vytvořte soubor mm.cfg, pokud neexistuje, a poté přidejte jeden nebo oba následující řádky:

    • PolicyFileLog=1 # Povolí protokolování souborů zásad.
    • PolicyFileLogAppend=1 # Volitelné; protokol nebude při spuštění vymazán.
    • Pokud není povolena vlastnost PolicyFileLogAppend, každý nový soubor SWF na kořenové úrovni vymaže soubor protokolu. Pokud je povolena vlastnost policyfilelogappendpolicyfilelogappend<>, bude vždy zachován předchozí obsah souboru protokolu a soubor protokolu se na konci zvětší.

    Pokud je během testování načtena řada různých souborů SWF na kořenové úrovni, pravděpodobně budete chtít povolit vlastnost PolicyFileLogAppend. Pokud však povolíte vlastnost PolicyFileLogAppend, pravděpodobně bude třeba ručně přejmenovat nebo občas odstranit soubor protokolu. Jinak se podstatně zvětší a bude obtížné určit, kde končí předchozí výstup a začíná nový výstup.

  4. Vyhledejte umístění, do kterého bude zapsán soubor policyfiles.txt, protokol souborů zásad. Nemusí zatím existovat. Aplikace Flash Player jej vytvoří při příštím spuštění souboru SWF. Soubor policyfiles.txt najdete v následujících umístěních:
    • Windows: C:\Documents and Settings\username\Application Data\Macromedia\Flash Player\Logs
    • Windows Vista: C:\Users\username[ AppData]\Roaming\Macromedia\Flash Player\Logs
    • Mac OS: /Users/username/Library/Preferences/Macromedia/Flash Player/Logs (je nekonvenční, aby program zapisoval soubory protokolů do adresáře Preferences, ale v tomto případě tomu tak je)
    • Linux: /home/username/.macromedia/Flash_Player/Logs
  5. Chcete-li zkontrolovat instalaci, spusťte libovolný soubor SWF v aplikaci Flash Player a poté aplikaci Flash Player (nebo prohlížeč) zavřete.

  6. V adresáři Logs je nyní zobrazen soubor policyfiles.txt. Ověřte, zda jeho čas vytvoření odpovídá nedávné změně. Otevřete jej a ověřte, zda se zobrazí alespoň jedna zpráva (načtení souboru SWF na kořenové úrovni). Pokud ano, protokolování souborů zásad funguje.

  7. Zobrazte obsah souboru SWF, který chcete testovat. Použijte obsah v libovolných scénářích, ve kterých na něj budou uplatněny soubory zásad. Po dokončení akce zavřete aplikaci Flash Player.
  8. Projděte si soubor policyfiles.txt, ve kterém najdete informace o tom, co se stalo se soubory zásad během testování. Pokud se zobrazí nějaké nejasné zprávy, přečtěte si článek o změnách souborů zásad v aplikaci Flash Player 9 a 10.

  9. Pokud v souboru policyfiles.txt najdete užitečné informace, které si potřebujete ponechat pro pozdější použití, přejmenujte soubor protokolu na jiný název než policyfiles.txt nebo jej přesuňte do jiného adresáře, aby aplikace Flash Player při opakovaném spuštění protokol nepřepsala.

Řešení: Vytvoření souboru zásad soketů povolujícího připojení k hostiteli

Chcete-li tento problém vyřešit, je nutné vytvořit soubor zásad soketů povolující připojení k hostiteli. Tento soubor zásad lze obsluhovat z hlavního umístění zásad soketů v portu 843 nebo z cílového portu připojení soketu. Soubor zásad soketů musí obsahovat všechny domény, které mají povolení k připojení k soketu, včetně sebe. Pokud je soubor zásad soketů hostován z hlavního umístění souborů zásad, zahrňte metazásady určující povolení umístění souborů zásad soketů.

Změny souborů zásad soketů jsou podrobně popsány v článku o změnách souborů zásad v aplikaci Flash Player 9 a 10. (Zprávy protokolů jsou podrobně popsány v dodatku B.)

Další reference

Informace o zabezpečení aplikace Flash Player najdete na stránce o zabezpečení aplikace Flash Player.

Změny mezidoménových souborů zásad a souborů zásad soketů jsou také podrobně popsány v článku o změnách souborů zásad v aplikaci Flash Player 9 a 10.

Tato práce podléhá licenci Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Na příspěvky ze služeb Twitter™ a Facebook se nevztahují podmínky licence Creative Commons.

Právní upozornění   |   Zásady ochrany osobních údajů online