Как я могу предотвратить / затруднить загрузку моего флэш-видео? - PullRequest
5 голосов
/ 17 июля 2009

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

Какой лучший способ сделать это?

Создайте обработчик http, добавьте токен (например, timeid), установите для элемента управления кэшем значение no-cache, чтобы только пользователи с правильным токеном могли просматривать правильное видео. Это возможно?

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

Я хочу знать, работает ли это: http://www.somesite.com/video.swf?time=1248319067

Сервер сгенерирует токен (время в приведенном выше примере), чтобы у пользователя был только один запрос к этой ссылке. Если пользователь хочет снова посмотреть видео, ему нужно зайти на наш сайт, чтобы снова получить токен. Это нормально, чтобы запретить загрузку новичкам?

Я не могу загрузить это флэш-видео с помощью плагина downloadHelper firefox: http://news.bbc.co.uk/2/hi/americas/8164177.stm

Обновлено (13:49 2009/07/23): Приведенный выше файл можно загрузить с помощью некоторого программного обеспечения для загрузки видео.

Видеофайлы следующих китайских сайтов хорошо защищены (я не могу загрузить их с помощью многих программ для загрузки видео): http://programme.tvb.com/drama/abrideforaride/video/

Вы знаете, как это делается?

Ответы [ 9 ]

8 голосов
/ 17 июля 2009

Я не думаю, что есть простой способ помешать людям получать ваши видео, если они этого хотят,

Есть множество плагинов для Firefox, которые позволяют скачивать даже с YouTube и многих других мест. И я полагаю, что эти плагины отключат любую вашу попытку скрыть ваши видео.

не слишком сильно отличается от взятия изображения из мерцания, они помещают четкое изображение в формате gif поверх изображения, которое вы хотите просмотреть, так что при щелчке правой кнопкой мыши и сохранении вы получаете изображение «щит», однако может быть непритязательная кнопка экрана печати. ​​

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

2 голосов
/ 26 ноября 2011

Вот как мне нравится решать эту проблему.

Этот метод работает путем создания заявки на загрузку контента через один http-запрос ... Еще одна попытка использовать тот же билет для загрузки контента не удастся, поэтому любые расширения, которые пытаются загрузить контент снова или пользователь пытается вручную в противном случае, следовательно, флэш-плеер будет единственным способом загрузки контента. Однако у этого подхода есть один недостаток: пользователи не смогут пропустить часть видео, которая не была загружена ... в некоторых стандартных реализациях плеера, которые могут даже остановить загрузку видео. Любые идеи по этому вопросу будут высоко оценены.

Я начинаю с написания PHP-скрипта, который принимает video_id, file_name или локальный путь к вашему видеофайлу (в зависимости от инфраструктуры хранения вашей видео коллекции) в GET-запросе вместе с уникальным значением хеша (сложным угадать и придумать, вероятно, сгенерированный с секретным ключом, так что он может быть проверен на поступление от нашего приемника (флэш-плеер), если хакер отправит нам использованный хеш или недействительный хеш (не удовлетворяет наш ключ), мы будем не отправлять ему файл). Затем скрипт PHP открывает видеофайл и отправляет его содержимое с правильным типом mime видео. для FLV тип пантомимы - видео / x-flv. Он гарантирует, что когда-то уникальный хэш не использовался ранее и был сгенерирован из вашего секретного ключа шифрования.

Затем, после загрузки страницы с помощью флеш-плеера, мы можем предоставить файл .php с правильными параметрами get в качестве URL-адреса видео для видеоплеера. (Если это prude-плеер, который разрешает только flv-файлы, вы всегда можете запрограммировать ваш файл .htaccess для анализа файлов .flv как php-скрипта только в определенной папке и переименовать ваш .php-файл в .flv и попытать счастья) .. .anyways ... также сгенерируйте хеш-ключ ... возможно, вы можете взять текущее время сервера и добавить его к солт-значению, такому как другой ключ, известный обоим сценариям, и зашифровать эту окончательную конкатенацию с вашим секретным ключом.

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

Для дополнительной безопасности вы можете каждый день сбрасывать секретный ключ, используя механизм cronjob или bootstrap. Чтобы предотвратить дублирование использования хеш-ключей, вы можете хранить их в базе данных mysql, файловых операциях или NOSQL (в зависимости от ваших потребностей и инфраструктуры).

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

2 голосов
/ 23 июля 2009

Я не думаю, что действительно есть простой способ ограничить доступ людей к этому. Вы отправляете им видео, именно так они могут его просматривать. Любой пользователь может просто использовать FRAPS или аналогичный инструмент для копирования видео с экрана.

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

Редактировать: Должная осмотрительность будет информировать вашего клиента о том, как легко скопировать работу, которую он будет публиковать. Большинство клиентов даже не подозревают, насколько это просто.

1 голос
/ 15 сентября 2011

Просто вы не можете предотвратить это. Но .. вы можете сделать это сложно. Вот некоторые идеи приходят мне в голову

1 Прежде всего добавьте свой идентификатор к видео (его всегда может кто-нибудь скачать)

2 Трудный путь ... Добавьте обратный вызов Ajax на сервер, чтобы проверить случайный сгенерированный ключ, который будет храниться в сеансе каждые N секунд. После каждого поста обратно очищайте буфер проигрывателя и запускайте видео с которого я был (используя javascript). Повторно используйте JavaScript, чтобы источник видео не загружался с помощью «Просмотреть источник».

3 Обрабатывайте все свои видео в URL, например, http://www.example.com/viewvideo/1 ИЛИ ../?id=1. Добавьте пустое изображение наложение с прозрачным фоном. Подайте оригинальное видео и пустое видео где-нибудь на странице с обычным расширением и стилевым атрибутом «display: none». (создаст проблемы для некоторых помощников загрузки)

4 Каждый раз, когда вы просматриваете видео, ПРОВЕРЬТЕ, если запрос поступил из браузера (т. Е. Проверьте UserAgent)

5 Cookie с некоторым случайным значением в сочетании с идентификатором видео. Проверьте это на стороне клиента и на стороне сервера, а затем отправьте видео.

6 По событию focusout скрыть видео с помощью javascript. поместите кнопку возобновления во флэш-память и оставьте кадр без изменений (например, пауза, но без исходного видео в буфере).

7 Объедините эти методы

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

1 голос
/ 28 ноября 2010

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

Решение: с помощью flash сожмите видео в файл swf. Перед сжатием добавьте код AS в фильм для аутентификации. предложения по аутентификации:

1 тестовый URL 2 создайте выделенный флэш-плеер, код проверки рукопожатия которого проверен на video.swf

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

1 голос
/ 23 июля 2009

Единственный способ сделать это - с доверенным клиентом, DRM и зашифрованным источником.

Ваш проигрыватель открывает соединение, у пользователя есть соединение с потоком, вы выполняете магическую аутентификацию с его токеном, а затем передаете им зашифрованные данные.

Если вы этого не сделаете, тогда любой может скачать ваше видео и сохранить его.

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

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

1 голос
/ 17 июля 2009

Похоже, вам нужно добавить авторизацию и аутентификацию.

Вы можете поместить флэш-видео в другую папку в приложении ASP.Net и добавить файл web.config в эту папку, чтобы запретить доступ неавторизованным пользователям. Например:

Затем вам нужно включить аутентификацию для вашего сайта. Самый простой способ - аутентификация форм . Тривиальный пример с жестко запрограммированным именем пользователя и паролем приведен здесь .

Есть нагрузки, которые вы можете делать с платформой аутентификации в ASP.Net. Я предлагаю немного погуглить.

0 голосов
/ 23 марта 2014

в моем ответе вы не можете остановить кражу изображений / видео, но вы можете сделать это сложнее для обычных пользователей, но вы не можете сделать это сложнее для программистов, таких как мы (я имею в виду воров, которые мало знают о веб-программировании), есть некоторые приемы, которые вы можете сделать попробуй: -

1.) Использование flash в качестве YouTube и многих других сайтов, таких как http://www.funnenjoy.com.

2.) Разделение на части или настройка фонового рисунка (но пользователи с небольшим смыслом могут легко сохранить все ресурсы, открыв элемент проверки или другой параметр разработчика).

3.) Вы можете отключить щелчок правой кнопкой мыши и определенные клавиши, такие как CTRL + S and others possibles, с помощью JAVASCRIPT, но главный недостаток заключается в том, что если пользователь отключит JAVASCRIPT, все наши приемы не пройдут.

4.) Сохраняйте изображение в нет онлайн-каталогов (если у вас есть полный доступ к веб-серверу) и читайте эти файлы на языках сервера, таких как PHP каждый раз, когда требуется изображение / видео, и время от времени меняйте идентификатор изображения или создать скрипт, который может автоматически менять ID после каждого доступа.

5.) Используйте .htaccess в apache, чтобы предотвратить связывание ваших изображений с другими сайтами. Вы можете использовать этот сайт для автоматического создания .htacess http://www.htaccesstools.com/hotlink-protection/

0 голосов
/ 07 октября 2009

Я попытался предотвратить загрузку двумя способами, но не удалось.

  • Использование javascript для динамического создания объекта для flash.
  • Используя идею токена, предложенную в вопросе.

Что меня больше всего раздражает, так это то, что простой SAVE / AS из браузера Firefox может легко обойти трюки.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...