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

Самый неприятный синтаксический разбор

Это связано с тем, что известно как «самый неприятный синтаксис C ++». В принципе, все, что может интерпретировать компилятор как объявление функции, будет интерпретироваться как объявление функции.

Другой экземпляр той же проблемы:

std::ifstream ifs("file.txt");
std::vector<T> v(std::istream_iterator<T>(ifs), std::istream_iterator<T>());

v интерпретируется как объявление функции с двумя параметрами.

Обходной путь заключается в добавлении еще одной пары круглых скобок:

std::vector<T> v((std::istream_iterator<T>(ifs)), std::istream_iterator<T>());

Или, если у вас есть C ++ 11 и инициализация списка (также известная как равномерная инициализация):

std::vector<T> v{std::istream_iterator<T>{ifs}, std::istream_iterator<T>{}};

При этом нет возможности интерпретировать его как объявление функции.

5
задан dsims 17 September 2008 в 15:12
поделиться

6 ответов

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

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

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

1
ответ дан 13 December 2019 в 22:20
поделиться

Flash имеет в распоряжении некоторые аккуратные меры безопасности. Разрешение пользователям загрузить swf's на Ваш сайт и встраивание их небезопасно, Вы в основном собираетесь для нападения XSS.

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

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

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

3
ответ дан 13 December 2019 в 22:20
поделиться

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

Псевдокод, чтобы сделать так:

var maskSpr : Sprite = new Sprite();
maskSpr.graphics.beginFill();
maskSpr.graphics.drawRect(0,0,safeWidth,safeHeight);
maskSpr.graphics.endFill();
myLdr.mask = maskSpr;
3
ответ дан 13 December 2019 в 22:20
поделиться

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

1
ответ дан 13 December 2019 в 22:20
поделиться

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

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

0
ответ дан 13 December 2019 в 22:20
поделиться

На самом деле существует более одной опции.

Для полной безопасности установите 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

2
ответ дан 13 December 2019 в 22:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: