2011-03-06 3 views
1

Я пытаюсь играть файл FLV, расположенный на удаленном сервере («crossdomain.xml» не существует в процессе) 3 способами:Является ли Flash Cross Domain бесполезным?

  1. из браузера, используя SWF плеер, расположенный на каком-то сервере
  2. От VLC, указывая на удаленный файл.
  3. Загрузка удаленного файла и SWF Player - играть локально

Угадайте что?

  1. Не играть FLV
  2. Играемый как шарм
  3. Играл как шарм

Заключение: Безопасность Междоменное Flash-бесполезно.

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

ответ

5

Я не собирался писать свой собственный ответ, потому что я чувствовал, что @jpea уже написал самые важные вещи. Но кажется, что идея и использование файлов crossdomain.xml все еще неясны. Так вот:

  1. Cross-site scripting делает не см доступа к медиа-контенту с других серверов, но к способу атаки, используемый для примерно 80% всех нарушений безопасности в Интернете. Это может произойти по-разному, но всегда включает в себя ввод внешнего кода на веб-страницу (или содержимое подключаемого модуля), чтобы сделать клиент таким образом, чтобы он не был предназначен. Это может привести к атаке на сервер позже, но исходная проблема всегда связана с уязвимостями на стороне клиента.

  2. Файлы политики Crossdomain являются реализацией Flash так называемого «same-origin-policy», что является важной частью предотвращения межсайтовых скриптов. По сути, это означает, что любой контент, загружаемый SWF, должен быть в том же домене (в отличие от «на том же сервере») в качестве исходного контента.

    Что это означает, на практике? Это означает, например, что злоумышленнику не разрешено загружать исходный SWF в (невидимый) окружение SWF, размещенном на другом сервере, и контролировать весь входящий и исходящий трафик или захватывать события клавиатуры, чтобы украсть пароли и т. Д. Нарушение политика crossdomain вызовет ошибку безопасности, которая прекратит выполнение всего ActionScript.

    Это не, но, тем не менее, файлы FLV не воспроизводятся каким-либо другим способом - и это абсолютно не то, что он предназначен.

  3. Понятно, что есть (более или менее простые) способы обойти файлы политики crossdomain, например, используя прокси-сервер для направления запросов URL-адресов SWF, поэтому их использование не приведет к «реальной» безопасности. Но в рамках многоуровневой стратегии безопасности они помогают поднять планку для злоумышленников.

+0

Отличное объяснение. Благодарю. Вопрос в том, что, если SWF - это инструмент, как игрок, и я хотел бы разрешить его свободное использование. Защита паролем отсутствует. Каждый пользователь должен теперь писать crossdomain xmld и помещать их в каждое место, где есть исходное видео, которое игрок хотел бы играть. –

+0

Почему бы не ввести функцию внутренней вспышки, которая идет в Adobe или «любой сервер», чтобы проверить происхождение выполнения? Гораздо проще, чем запрашивать каждый сервер контента для размещения XML! –

+0

Я понимаю ваш дискомфорт, но это будет означать всевозможные «дискомфорты», оставив Adobe ответственной за безопасность при любой внешней загрузке, сделанной любым флэш-контентом в любой точке планеты, просто являясь одним из них. – weltraumpirat

4

crossdomain.xml предназначен как мера безопасности для плагина Flash-плеера. Только FLV - это не риск для безопасности, а игрок. В примере №2 вы не использовали Flash-плеер. Экземпляр №3 использует ту же защиту, что использует Flash в своей среде IDE (чтобы разрешить отладку). Экземпляр № 1 работал точно так, как предполагалось.

crossdomain.xml не предназначен для защиты от DRM или не позволяет загружать файлы. Это означает запретить непреднамеренным доменам использовать ваш FLV/F4V с другого сервера (более известный как межсайтовый скриптинг).

+0

+1, но одна вещь для добавления: она предназначена для предотвращения межсайтового скриптинга, а не как механизм DRM. – weltraumpirat

+0

спасибо - ответ отредактирован, чтобы отразить эту точку – jpea

+0

Но точка, если FLV можно получить и загрузить с любого сервера, используя разные клиенты, кроме flash. Ничто не защищает сервер от них –