Предотвратить загрузку видео HTML5 (щелчок правой кнопкой мыши сохранен)?

Структура агрегирования была введена в mongodb 2.2. Вы можете использовать строковый оператор «$ strcasecmp», чтобы сделать нечувствительное к регистру сравнение строк. Это более рекомендуется и проще, чем при использовании регулярного выражения.

Вот официальный документ оператора оператора агрегации: https://docs.mongodb.com/manual/reference/operator/aggregation/strcasecmp/# exp._S_strcasecmp .

148
задан Mureinik 7 January 2017 в 03:35
поделиться

1 ответ

хорошо, Вы не можете защитить его 100%, но можно мешать. эти методы, которые я объясняю, я столкнулся с ними во время изучения методов защиты в PluralSight и BestDotNetTraining. тем не менее, ни один из этих методов не мешал мне загрузить то, что я хочу, но мне пришлось нелегко для курирования загрузчика для передачи их защиты.

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

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

правовая оговорка

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

генерируют ссылки с истечением

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

на событии кнопки воспроизведения Вы отправите запрос к серверу и получите ссылку и обновите источник.

регулируют видео уровень запроса

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

Включают Диапазон HTTP

, пользуются некоторой js библиотекой как videojs для проигрывания видео, также необходимо возвратить AcceptRange в заголовке. Устройство хранения данных блоба Azure поддерживает это из поля. этим путем браузер начинает загружать видео блок блоком. обычно, 32 байта на 32 байта затем необходимо слушать изменение videojs timeupdate и обновить сервер о проценте, что видео просмотрено. процент, что видео просмотрено, не может быть больше, чем процент, который поставляется видео. и если Вы обеспечиваете видеоконтент, не получая процентного изменения, затем можно заблокировать пользователя. потому что наверняка они загружают.

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

это - то, как BestDotnetTraining обрабатывает timeupdate

myPlayer.ready(function () {
    //var player = this;
    this.src({
        type: "video/mp4",
        src: videoURL
    });
    if (videoId) {
        myPlayer.play();
        this.on('timeupdate', function () {
            var currentPercent = parseInt(100 * myPlayer.currentTime() / myPlayer.duration());//calcualte as percentage
            if (currentPercent % 5 == 0) {
                //send percentage to server 
                SaveVideoDurationWatched(currentPercent, videoId);
            }
        });
    }

});

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

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

original video length 24 minute
24 min *60000 = 1,440,000 miliseconds 
1,440,000 % 100 = 14,400 milisecond is needed to download one percent

, проверяют агент браузера

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

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

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

проверяют заголовок ссылающегося домена

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

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

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

Вычисляют время между запросом

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

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

пример кода

у меня есть PluralSight-загрузчик repo , который делает его на полпути. Я создал этот repo почти 5 лет назад. потому что я записал это для цели исследования и собственного персонального использования только, repo не получен никакое обновление до сих пор, и я не собираюсь обновлять или помогать работать с. это - просто пример того, как это может быть сделано.

0
ответ дан 23 November 2019 в 21:48
поделиться
Другие вопросы по тегам:

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