Можете ли вы воспроизводить видео FLV со ссылками S3 во Flash 10? - PullRequest
0 голосов
/ 26 марта 2009

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

1) Есть ли какие-либо проблемы, о которых мне следует знать перед погружением?
2) Нужно ли использовать библиотеку AS3 S3 для генерации подписей?
3) Можно ли сгенерировать 1 подпись при загрузке приложения (например, из PHP) и отправить ее во Flash для использования с каждым загружаемым FLV-файлом?
4) Изображения и аудио также будут загружены в приложение Flash и также должны быть защищены.

Спасибо Стивен

Ответы [ 3 ]

0 голосов
/ 02 декабря 2012

Судя по всему, я потратил миллиарды часов, пытаясь сделать то же самое с файлами MP3 для своего веб-сайта. Ответить:

1) Не слишком сложная задача. (несмотря на мой газиллион часов)

2) Не подписывайте URL-адреса из Flash. Используйте размещенный файл PHP, к которому вы можете сделать запрос AJAX для получения подписанных URL-адресов. Для этого структура каталогов корзины S3 должна иметь согласованный шаблон, который делает местоположение файла, учитывая некоторый ввод, программно определяемым.

Не знаю, это процесс, который можно обойти. Подписание URL должно выполняться только на стороне сервера, а не на стороне клиента. Дайте мне знать, если вы хотите увидеть мой пример кода AJAX. Я вставлю это здесь для вас

3) Процесс подписи использует минимум три переменные для создания подписи - метка времени, местоположение файла (bucket / folder / floder / file), S3 Secret Key. Следовательно, каждый запрос на файл должен иметь отдельную подпись. Подписанные URL-адреса должны иметь очень ограниченный срок действия (скажем, 10 секунд). Пользователи, которые смогут узнать URL-адрес в течение этих 10 секунд, смогут загрузить файл.

Наличие подписей, которые зависят от одной только временной метки, может разрушить (в основном, если не полностью) всю цель наличия подписанных URL.

Чтобы подписать URL-адреса, используйте скрипт ниже. Это работает как обаяние и сэкономило бы мне много часов, если бы я получил его вовремя. Также посмотрите на пункт 5 ниже для дополнительной безопасности.

http://www.richardpeacock.com/blog/2010/07/amazon-aws-s3-query-string-authentication-php

4) По какой-то причине проигрыватели FLASH не воспроизводят подписанные URL-адреса S3 для файлов MP3. Я думаю (GUESS), что они игнорируют часть URL после прочтения расширения .mp3 в URL. Таким образом, часть строки запроса URL игнорируется плеером и не может прочитать файл. Они воспроизводят общедоступные файлы в моем S3 Bucker, хотя. Я использую Silverlight для своего сайта, и я отчаянно использую для решения FLASH. Если это является причиной, защищенные FLV-файлы не будут воспроизводиться. В этом случае вам придется проксировать весь файл на ваш клиент, используя только URL. Решение, которое я пытаюсь избежать.

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

http://www.pc -help.org / obscure.htm

6) Кроме того, ваш подход к безопасности должен заключаться в том, чтобы инициировать воспроизведение файла в браузере до истечения срока действия URL. Период истечения срока действия должен быть достаточно коротким, чтобы предотвратить обнаружение URL-адреса до истечения срока действия, и должен быть достаточно длинным, чтобы обеспечить достаточную задержку начала воспроизведения. Это более или менее суть разумно безопасной потоковой передачи с использованием самораскрывающихся URL-адресов.

0 голосов
/ 02 декабря 2012

Чтобы ответить на ваши конкретные вопросы

Вопросы, о которых вам нужно знать: пункт 4 в моем 1-м ответе;

Требуется ли библиотека Amazon S3? Да, но не совсем, пункт 3 в моем 1-м ответе. Скрипт в ссылке можно использовать, не обращаясь к документации, но вам нужно понять метод подписания Амазонок

Просто использовать 1 подпись? : Не рекомендуется, побеждает все цели использования подписи, вероятно, нет, так как я думаю, что подпись обязательно использует путь к файлу и имя

Защита аудио и изображений: вся защита является разумной (при условии, что ваши конечные пользователи не имеют ограничений по времени или знаниям и могут писать код).

Изображения: используйте Javascript, чтобы отключить щелчок правой кнопкой мыши. Аудио: потоки можно загрузить с некоторыми изменениями, которые вы можете усложнить.

Изображения, безусловно, можно было бы загрузить, отключив JavaScript или перфорировав код JS с помощью JS Scratchpad / Console. Поэтому даже обнаружение, если JS включен, не поможет защитить изображения.

0 голосов
/ 26 марта 2009

Да, вы можете воспроизводить подписанные URL-адреса во Flash без проблем ...

после прочтения мне удалось ответить на пару моих собственных вопросов -

1) Да, много!
2) Не очень хорошая идея подписывать URL-адреса из Flash, так как секретный ключ должен быть в SWF или загружен из PHP, поэтому здесь может возникнуть угроза безопасности. Вероятно, лучше всего вызвать метод PHP на сервере, чтобы сгенерировать подписанный URL и вернуть файл во Flash / вернуть путь к файлу (sendAndLoad?). Но это похоже на дополнительный шаг, который можно как-то обойти!
3) До сих пор не уверен в этом, но я думаю, что процесс подписания включает использование пути к файлу, поэтому каждая подпись для каждого URL-адреса уникальна - это правильно?

У кого-нибудь есть еще советы по этому поводу? Стивен

...