kossnocorp
@kossnocorp

Проксирующий swf мост для обхода sandbox ограничений флеша?

Задача: сделать возможным отправку запросов в интернет из флеша запущенного с локального протокола (widget://, file://, chrome-extension://) без особых разрешений на www.macromedia.com/support/documentation/en/flashp...


Предполагаемое решение: проксирующий swf файл (мост), который загружается в страницу открываемую браузером по протоколу file (или widget или chrome-extension или по любому другому не http), загружает в себя другой swf файл, который располагается на http сервере. Этот swf мост передаёт все свои js вызовы из браузера в http swf файл, и соответсвенно принимает всё из него и передаёт обратно в браузер.


Решение основывает на предположении, что модель песочницы основывается на протоколе (ссылке) по которой загружается флеш, поэтому http swf может нормально отправлять запросы в интернет (и общаясь со своим родителем выполнять нужные нам действия).


Данная реализация есть у youtube роликов — если их встроить в локальную страницу они нормально загружаются и проигрываются. (как ни странно в флеш запущенный локально можно встроить флеш с http сервера — возможно это присуще только flash 8 или 7 )


В итоге должно получится так, что soundmanager2 www.schillmania.com/projects/soundmanager2/ (проект для проигрывания аудио и видео файлов в браузере полностью через js интерфейс с помощью флеша) открытый локально на компьютере через file:// (flash 9 версия) будет нормально инициализироваться через этот прокси, скачивать, проигрывать и показывать файлы из интернета. Интересует конкретно его вот эта версия github.com/scottschiller/SoundManager2/tree/V2.95b...


Насколько я предполагаю всё должно быть просто, что нибудь типа этого (абстрактно)

<pre>//proxy - глобальный объект этого файла
var api_donor = (new FlashFileLoader()).load('http://d.com/swf/soundmager.swf');
proxy.externalInterface.in = function () {
    api_donor.in.apply(api_donor, arguments);
}
api_donor.out = function () {
    proxy.externalInterface.out.apply(proxy.externalInterface, arguments);
}</pre>

www.flasher.ru/forum/showthread.php?t=149504&highl...
help.adobe.com/en_US/as3/dev/WS5b3ccc516d4fbf351e6...


Можете посмотреть как работает ютубовский ролик.


Мой товарищ заинтересован в данном прокси, что бы проигрывать музыку в оперовском расширении для своего проекта seesu.me без требования от пользователя проставить особые расширения на этой странице www.macromedia.com/support/documentation/en/flashp... (с проставленным разрешением SoundManager2 нормально инициализируется)
  • Вопрос задан
  • 3073 просмотра
Пригласить эксперта
Ответы на вопрос 1
exIV
@exIV
Насколько я понимаю для полного обхода песочницы Flash вам потребуется соорудить прокси на одном из Ваших
доменов, вернее именно на том, откуда по http будет загружаться Flash. В корень этого домена Вам необходимо будет
положить
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы