Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Как безопасно встроить любой флеш-файл (swf)?

Автор вопроса: dsimsОтветов: 6

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

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

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

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

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

securityembedflash

Ответы

Ответ 1 · рейтинг 3 · grapefrukt

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

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

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

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

Ответ 2 · рейтинг 3 · RickDT

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

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

var maskSpr : Sprite = new Sprite();
maskSpr.graphics.beginFill();
maskSpr.graphics.drawRect(0,0,safeWidth,safeHeight);
maskSpr.graphics.endFill();
myLdr.mask = maskSpr;

Ответ 3 · рейтинг 2 · Community

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

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

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

Если вы хотите включить такие вещи, как видео на 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

Ответ 4 · рейтинг 1 · RedWolves

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

Ответ 5 · рейтинг 1 · dsims

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

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

Как ограничить содержимое SWF из HTML

Ответ 6 · ceejayoz

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

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы