![]() |
на самом деле можно использовать порты и ниже 1024, но для этого надо иметь возможность разместить на порте ниже 1024 свой сервер.
Затем загрузить сертификат безопасности при помощи loadPolicyFile(). в данном случае наверно имеет смысл использовать порт выше 1024. |
loadPolicyFile() - незнал об это, спасибо за просвещение!!!
|
Цитата:
|
Сам я делал это давно и только ради эксперемента,
вот нашёл чем я тогда руководствовался: "Дмитрий Гурский для ПРОФЕССИОНАЛОВ ActionScript 2.0" "17.1.5. Преодоление ограничений для сокетов Flash-плейер дает возможность получать данные с сервера непосредственно по протоколу TCP, а не по HTTP, как это обычно происходит в случае сайтов. Для этого со стороны клиента использу- ется класс XMLSocket, а со стороны сервера — особые приложения, так называемые сокеты- серверы. Подробно о сокетах поговорим ниже, а пока обсудим лишь ограничения, накладываемые на них политикой безопасности Flash MX 2004. Еще во Flash 5, когда появился класс XMLSocket, были запрещены подключения к портам с номе- рами меньше 1024. Это было связано с необходимостью блокировать возможность атаки на порты стандартных служб (они исторически имеют номера от 0 до 1024). Во Flash MX 2004 ограничения, связанные с безопасностью, усилились. Теперь фильм может установить соединение с сокетом- сервером на домене лишь в том случае, если он сам был получен с этого домена. Чтобы преодо- леть это ограничение, нужно создать сертификат безопасности точно так же, как и в случае им- порта данных по HTTP. Перед тем как установить соединение с соке-том на домене, плейер про- верит наличие файла crossdomain.xml на 80 порту (т. е. запросит его у HTTP-сервера), Если он там обнаружится и «родной» домен фильма окажется дружественным, то соединение будет создано. Синтаксис сертификатов безопасности для сокетов точно такой же, как и для импорта данных по HTTP. Единственное, нужно задать дополнительный атрибут to-ports тега <allow-access-from>, в котором указывается, доступ к каким портам должен быть разрешен для фильмов домена, пропи- санного в атрибуте domain. Указать в качестве допустимых несколько доменов можно, прописав их номера через запятую. Чтобы задать интервал доменов, нужно использовать запись «beginend », где begin — номер начинающего интервал домена, end —- номер домена, который завершает интервал. Если значением атрибута to-ports сделать «*», то фильм сможет подключиться к любому порту с номером больше 1024. По умолчанию нельзя разрешить доступ к порту с номером меньше 1024. Пример сертификата безопасности для сокета: <?xml version="l.0"?> <!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd"> <cross-domain-policy> <allow-access-from domain="www.mysite.ru" to-ports="2020"/> <allow-access-from domain="*.narod.ru" to-ports="1024-65535"/> <allow-access-from domain="*" to-ports="1025,1026"/> </cross-domain-policy> Обычно фильм получает сертификат безопасности по HTTP. Это не всегда удобно. Например, до- мен, на котором установлен сокет-сервер, может просто не иметь HTTP-сервера (он традиционно занимает 80 порт). Устанавливать же сервер только из-за сертификата безопасности нерациональ- но. Лучше запросить его непосредственно у сокета-сервера. Сделать это позволяет метод loadPolicyFile() объекта System.security. В качестве параметра он принимает строку с URL, задан- ную по следующей схеме: «xmlsockct://domain:port», где «xmlsocket://» — префикс, указывающий на то, что сертификат должен быть получен не по HTTP; domain — имя домена, на котором распо- лагается сервер; port — занимаемый сокетом-сервером порт. Например: var connection:XMLSocket=new XMLSocket(); System.security.loadPolicyFile("xmlsocket://www.mysite.ru:2045"); connection.connect("www.mysite.ru", 2045); Отправлять сертификат безопасности может как тот же сервер, с которым должно быть установ- лено соединение, так и любой другой, Настроить его нужно исходя из того, что плейер, запраши- вая сертификат, посылает сообщение «<cross-domain-request/>», завершаемое нулевым байтом. В ответ сервер должен отправить текст сертификата, завершив сообщение нулевым байтом. Получив его, плейер разорвет соединение. У метода loadPolicyFile() имеется огромное преимущество, которое заставляет обращаться к нему даже тогда, когда на домене имеется HTTP-сервер. Загружая сертификат безопасности при помо- щи loadPolicyFileO, можно разрешить доступ фильму к портам с номерами меньше 1024 (то есть к портам стандартных служб). Для этого сам сертификат должен быть получен с порта с номером, не превышающим 1024 (если вы смогли разместить на таком порте свой сервер, значит у вас дос- таточно высокий административный доступ, чтобы позволить вашему фильму обращаться к стан- дартным портам). Сертификат, загруженный с порта, номер которого больше 1024, или по HTTP, не может дать допуск на подключение к стандартным портам. До выхода Flash 7 для установки соединения со стандартным портом приходилось создавать на сервере прокси-сцtнарий, который, получая данные от фильма, пересылал их на нужный порт." Спасибо людям, умеющим объяснять:) |
да уж, спасибо :) Поэкспериментирую как-нить... Когда припечет... :D
|
| Часовой пояс GMT +4, время: 17:06. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.