Zabezpečení aplikací
(tento config se týká pouze klientských aplikací vytvořených ve Flashi a Flexu)
Flash od verze 7 zavedl novou bezpečnostní politiku, která je založena na tom, že
pokud máte v nějaké www doméně swf soubor, může tento swf soubor využívat prostředky
pouze z této domény. Pokud chcete načítat data z jiné domény nebo využívat služeb
XML Socket Serveru, který běží na jiné doméně, musíte do rootu cílové domény umístit
soubor crossdomain.xml, ve kterém definujete, které domény mají k prostředkům v
cílové doméně přístup.
Příklad souboru crossdomain.xml:
<cross-domain-policy>
<allow-access-from domain="*" to-ports="507" />
<allow-access-from domain="*.mysite.com" to-ports="507,516"
/>
<allow-access-from domain="*.myothersite.com" to-ports="516-523"
/>
<allow-access-from domain="www.myothersite.com" to-ports="507,516-523"
/>
<allow-access-from domain="www.mysite.com" to-ports="*"
/>
<allow-access-from domain="flash.mysite.com" to-ports="*"
/>
</cross-domain-policy>
Význam souboru je myslím zřejmý, zájemce o podrobnější popis odkazujeme na stránky
Adobe Security Changes in Macromedia Flash Player 7.
http://www.adobe.com/devnet/flash/articles/fplayer_security_03.html
Můžete použít i jiný název bezpečnostního souboru, pak ovšem musíte ve Flashi zařídit,
aby byl tento soubor do Flashe načten. To lze udělat pomocí funkce loadPolicyFile.
Příklad:
System.security.loadPolicyFile("http://www.mysite.com/flash/myPolicy.xml")
Pozn. Tuto funkci musíte zavolat před prvním použitím funkcí, které přistupují do
cílové domény.
Pokud provozujete XML Socket Server na samostatné doméně a využíváte ke komunikaci
např. port 80 a nemáte na této doméně spuštěný http server na žádném portu, nemůže
Flash z této domény načíst bezpečnostní soubor crossdomain.xml ani jiný bezpečnostní
soubor, který by se načítal pomocí protokolu http. V tomto případě můžete místo
protokolu http použít protokol xmlsocket.
Funkce má tvar např. System.security.loadPolicyFile("xmlsocket://socks.mysite.com:80").
Tato funkce požádá o bezpečnostní soubor samotný XML Socket Server, který si údaje
přečte z eClever.config. Abyste mohli tuto funkci použít, musíte v eClever.config
vyplnit sekci <cross-domain-policy>. Význam atributů je shodný s atributy v souboru
crossdomain.xml.
Máte-li spuštěn http server, např. na portu 2277, můžete ve Flashi použít funkci:
System.security.loadPolicyFile("http://socks.mysite.com:2277/?action=cross-domain-policy").
Příklad policy.config
Význam jednotlivých atributů je následující:
Sekce cross-domain-policy / allow-access-from domain |
domain |
|
Doména, ze které chceme povolit přístup na XML Socket Server. |
to-ports |
|
Porty, na které chceme povolit přístup. |