Как безопасно встроить любой флэш-файл (SWF)? - PullRequest
5 голосов
/ 04 сентября 2008

Я хочу, чтобы мои пользователи могли вставлять свои собственные Flash-анимации в свои сообщения. Обычно сам файл размещается на каком-либо бесплатном хостинге изображений. Я бы не стал загружать флэш-память, если бы пользователь не нажал кнопку воспроизведения (чтобы ничего не воспроизводилось автоматически при загрузке страницы). Я знаю, что во флэш-памяти люди могут делать действительно раздражающее дерьмо, но я не могу найти никакой информации о потенциальном серьезном повреждении, которое флэш-приложение может нанести зрителю.

Разве небезопасно вставлять какой-либо флэш-файл из интернета? Если так, как я могу позволить пользователям вставлять невинные анимации, но при этом не допускать вредных приложений?

редактирование:

Насколько я понимаю, наиболее очевидной угрозой для ActionScript является перенаправление вас на вредоносный сайт.

Adobe говорит , что вы можете установить allowScriptAccess = never и allowNetworking = none , и swf не должен иметь доступа ни к чему, кроме себя. Это решит все мои проблемы?

Ответы [ 6 ]

3 голосов
/ 09 сентября 2008

При встраивании SWF-файлов из неизвестных источников также рекомендуется добавить маску в загрузчик, чтобы загруженный SWF-файл не мог занять больше места на экране, чем ожидалось.

Псевдокод для этого:

var maskSpr : Sprite = new Sprite();
maskSpr.graphics.beginFill();
maskSpr.graphics.drawRect(0,0,safeWidth,safeHeight);
maskSpr.graphics.endFill();
myLdr.mask = maskSpr;
3 голосов
/ 05 сентября 2008

Flash имеет некоторые аккуратные меры безопасности на месте. Разрешение пользователям загружать SWF-файлы на ваш сайт и их встраивание небезопасно, вы в основном настраиваетесь на XSS-атаку.

Тем не менее, разрешение их горячей ссылки не должно быть проблемой. SWF-файл будет заблокирован для домена, в котором он размещен, и ему запрещено вызывать URL-адреса за пределами этого пространства.

Он по-прежнему будет открыт для «злых ссылок» (я уверен, что для них есть подходящее слово), и под этим я имею в виду наличие регулярных ссылок на yoursite.com/admin/deleteallpages.php, которые он пытается загрузить как и ты. Однако он не сможет использовать эти данные каким-либо образом, в основном он будет таким же, как обычная ссылка, и я предполагаю, что современные cms 'защищены от атак такого типа.

Вы можете получить такую ​​же защиту, разместив свои флешки на другом поддомене, поскольку flash считает это тем же, что и совершенно другой домен.

2 голосов
/ 12 мая 2009

На самом деле существует более одного варианта.

Чтобы быть в полной безопасности, установите allowScriptAccess = never и allowNetworking = none, и swf не будет иметь доступа ни к чему, кроме себя.

ПРИМЕЧАНИЕ: allowNetworking есть только в Flash Player 9 (он был создан в ответ на различные черви myspace), поэтому вам нужно будет использовать SWF Object , чтобы гарантировать, что только пользователи с нужной версией Flash Player или лучше загрузите вспышку.

Если вы хотите включить такие вещи, как видео на YouTube, вы не можете установить для параметра allowNetworking значение «none». К счастью, для этого поля существует промежуточный уровень безопасности - «внутренний», который позволяет SWF-соединению общаться с размещенным доменом.

Также обратите внимание, что вам лучше не иметь файл crossdomain.xml на своем сайте - узнайте больше об этих опасностях здесь и других местах.

Вот некоторые другие сайты, упомянутые в других ответах, которые более подробно описаны:

http://www.adobe.com/devnet/flashplayer/articles/secure_swf_apps_04.html

http://blogs.adobe.com/stateofsecurity/2007/07/how_to_restrict_swf_content_fr_1.html

1 голос
/ 09 сентября 2008

Adobe говорит, что вы можете установить allowScriptAccess = никогда и allowNetworking = нет, и у swf не должно быть доступа ни к чему, кроме себя. Хотя allowNetworking есть только в Flash Player 9, пользователи более ранних версий Flash по-прежнему могут быть подвержены некоторым уязвимостям.

Создание более безопасных веб-приложений SWF: элементы управления безопасностью в HTML-коде

Как ограничить SWF-контент из HTML

1 голос
/ 04 сентября 2008

В качестве примера в Drupal есть сценарий о том, как разрешение флэш-контента от пользователей может быть проблемой безопасности.

0 голосов
/ 04 сентября 2008

Да, это небезопасно.

Нет простого способа позволить это. У вас может быть белый список доменов, который пропускает YouTube, Hulu и т. Д., Но белый список по своей природе кропотлив - вы будете постоянно обновляться.

...