2008-09-19 9 views
7

Zastanawiam się, czy istnieją jakieś obawy dotyczące bezpieczeństwa związane z dodawaniem pliku crossdomain.xml do katalogu głównego serwera aplikacji? Czy można go dodać do innych części serwera i czy znasz jakieś prace dookoła, które nie wymagają, aby serwer miał zainstalowany ten plik?Flex i crossdomain.xml

Dzięki Damien

Odpowiedz

10

Dodając crossdomain.xml, głównym problemem jest to, że bezpieczeństwo aplikacji flash mogą teraz połączyć się z serwerem. Jeśli więc ktoś zaloguje się do Twojej witryny, a następnie przejdzie do innej witryny ze złośliwą aplikacją Flash, ta aplikacja Flash może połączyć się z Twoją witryną. Ponieważ jest to przeglądarka, pliki cookie są udostępniane aplikacji Flash. Dzięki temu aplikacja flash może przejąć sesję użytkownika, aby zrobić to, co robi Twoja witryna bez wiedzy użytkownika.

Jeśli aplikacja Flex podawane jest z tego samego serwera, nie trzeba się crossdomain.xml

Można umieścić go w podkatalogu witryny i korzystać System.security.loadSecurityPolicy()

http://livedocs.adobe.com/flex/2/langref/flash/system/Security.html

Aplikacje będą wówczas ograniczone do tego drzewa w strukturze katalogów.

+0

Witam Marc Dzięki za komentarze. Tego rodzaju rzeczy są niepokojące. Czy wiesz, czy firma Adobe pracuje nad tym lub wymyśli więcej zabezpieczeń, aby naprawić to potencjalne zagrożenie? Dzięki Damien – Damien

+1

To jest "potencjalne" zagrożenie z projektowania, czasami ** potrzebujesz **, aby móc wykonywać komunikację między domenami, dlatego musisz wyraźnie zezwalać na połączenia przy użyciu tego pliku. – grapefrukt

+0

Nie całkiem rozumiem to ryzyko. Jeśli umieścisz "allow everything" crossdomain.xml w katalogu głównym serwera, czy to nie tylko daje aplikacjom Flash taki sam dostęp, jak już mają przeglądarki? JavaScript na stronie internetowej xxx.com nie widzi plików cookie na stronie yyy.com, ponieważ przeglądarka i zabezpieczenia JavaScript na to nie zezwalają. Czy plik flash w witrynie xxx.com naprawdę może uzyskać dostęp do plików cookie w domenie yyy.com (jeśli adres URL witryny crossdomain.xml w yyy.com pozwala na wszystko)? – SkippyFlipjack

0

Możesz skonfigurować wirtualny host dla swojej aplikacji. W ten sposób plik crossdomain.xml może znajdować się w katalogu głównym aplikacji, ale niekoniecznie w katalogu głównym serwera.

-1

crossdomain.xml to tylko plik, który ma znaczenie dla środowiska wykonawczego Flash; możesz ograniczyć żądania HTTP, aby je zobaczyć. Możesz użyć kontrolki konfiguracyjnej serwera WWW (np. Apache), aby umożliwić jej dostęp do odczytu (i tylko to) z katalogu "root" (zobacz poprzednie odpowiedzi).

Można filtrować przez innych nagłówków w żądaniu, itp

Cheers

1

Nie ma obejście pliku crossdomain, wymagane jest, aby wspierać dostęp do danych crossdomain lub crossdomain włączony. W przypadku dowolnego żądania międzydomenowego Flash wyszuka plik crossdomain.xml w katalogu głównym domeny. Na przykład, jeśli żądasz pliku XML z:

http://mysubdomain.mydomain.com/fu/bar/

Flash sprawdzi, czy istnieje plik crossdomain.xml w:

http://mysubdomin.mydomain.com/crossdomain.xml

można umieścić plik crossdomain.xml w innej lokalizacji. Jednak, gdy trzeba załadować plik crossdomain.xml z innej lokalizacji, trzeba to zrobić przez Security.loadPolicyFile. Pamiętaj, że lokalizacja tego crossdomaina ma wpływ na Twój dostęp bezpieczeństwa. Program Flash przyzna dostęp tylko do folderu zawierającego crossdomainę i foldery podrzędne.

Możesz również przeczytać na stronie security changes in Flash Player 10.

+0

To nie jest ściśle prawda; obejściem pliku crossdomain jest proxy całego ruchu sieciowego za pośrednictwem tego samego serwera, na którym znajduje się Twoja aplikacja Flash. – Brian