Защита контента и антихотлинкинг
Защита контента в первую очередь решает проблему хотлинкинга* — делает невозможным (или существенно усложняет) использование вашего контента на чужом сайте. При этом нам важно сохранить максимум вашего трафика. Поэтому защита vCDN срабатывает в нелинейной логике — доступ к видео может быть разрешен, когда есть основания считать, что пользователь пришел с родного сайта, даже если по правилам защиты запрос должен быть заблокирован. Подробности — в описании доступных методов.
*хотлинкинг — использование на сайте ресурсов другого сайта, когда в html-коде сайта теги <img>
, <video>
и подобные ссылаются на файлы другого сайта. Так делают с целью экономить деньги на хостинге и заработать на чужом контенте.
Все приведенные ниже методы защиты можно использовать в любой комбинации, но для работы многих из них необходимо использование подписи URL (параметр /key=../
).
Рекомендуемое значение списка рефереров:
/referer=!.wrong.domain,any/
Referrer — это заголовок в http-запросе браузера к серверу, с информацией о запрашиваемой странице. В зависимости от запроса, CDN также анализирует заголовок Origin (содержащий только домен).
Из соображений приватности, эти заголовки часто не передаются вовсе, также есть способы отключить их передачу в html-коде сайта и скрыть злоумышленное использование ваших ресурсов чужим сайтом. Поэтому проверка заголовков выявит хотлинкинг только в небольшой доле случаев, но может подтвердить отсутствие хотлинкинга, если браузер возвращает родной домен.
Важно учесть, что разные браузеры могут передавать разные URL (например URL показываемой страницы, URL источника js-кода, проигрывающего видео, и т.п.). В связи с этим, в список допустимых рефереров следует добавить все домены, на которых размещаются ресурсы, принимающие участие в проигрывании видео.
Проще всего, если все такие ресурсы размещены на поддоменах основного домена — тогда достаточно добавить только основной домен с указанием разрешить и его поддомены (т.е. *.example.org) — для параметра /referer=../
это будет домен с точкой перед именем: /referer=none,blocked,.example.org/
Чем сильнее ограничить срок жизни ссылки — тем чаще боту-злоумышленнику придется ходить за свежими URL. Важно учесть, что одновременно увеличиваются шансы, что времени жизни ссылки может не хватить на просмотр всего видео.
Один из лучших комплексных вариантов защиты от нежелательного скачивания — привязать ссылку к IP браузера и задать список разрешенных рефереров.
Следует учитывать, что значительный процент трафика (около 15%) приходит с провайдеров, которые используют разные IP для доступа к разным доменам и на сайт запрос может прийти с одного IP, а на vCDN — уже с другого. При чем vCDN получает сначала запрос на редиректор, а потом на стрим-сервер. Все эти IP могут быть разными и отличаться от того IP, с какого был сделан запрос к сайту.
Поэтому, чтобы сохранить максимальный объем трафика, vCDN не блокирует запрос с невалидным IP, если есть основания считать что запрос пришел с родного сайта — возвращен непустой валидный реферер.
Ограничение количества разных IP которые могут обращаться к определенному URL, вместо привязки к конкретному IP (или диапазону).
Реальное количество допущенных IP может быть выше из-за сложности синхронизации счетчика между серверами.
Данный метод позволяет воспользоваться одним URL разным IP-адресам (что актуально для трафика с динамических IP), но защищает от массового хотлинкинга. Опция Force HTTPS обезопасит и от примитивных ботов, которые не поддерживают https.
Для использования проверки cookie вам нужно делегировать ваш субдомен на наши NS, чтобы мы могли использовать их в редиректах на стримы и предоставить техподдержке сертификат на *.cdn.example.com , чтобы работал редирект на стриминг сервера вида https://ip123456.cdn.example.com/.
Поскольку доступ к cookie поддомена имеет только сам домен высшего уровня (и его js-скрипты), при проигрывании видео родной домен может установить значение SecureCookie в строку подписи URL, а чужой домен не сможет и не пройдет соответствующую проверку. Данный метод позволит сохранить больше трафика с динамических IP.
Использование этого метода сопряжено с определенными трудностями — разные браузеры по разному относятся к передаче cookie на сторонние поддомены. Если использовать домен по умолчанию вида ipXXXX.ahcdn.com, то cookie не будет передаваться в http-запросе на стрим-сервер, при использовании поддомена vCDN-домена (т.е. при редиректе на поддомены вида ipXXXX.vcdn.example.org) — браузер все равно может решить не передать cookie на стриминг-сервер.
Данный глобальный параметр позволяет ограничить доступ к контенту из определенных стран. Список стран для блокировки задается в настройках аккаунта или домена. Следует иметь ввиду, что определение страны может быть недостаточно точным и в итоге могут быть заблокированы легальные запросы.
Параметр ограничивает интенсивность http-запросов для URL, в глобальной или подоменной настройке. В связи с нетривиальностью реализации, такая проверка осуществляется только на серверах-редиректорах, но не на стрим-серверах.
Ограничение интенсивности запросов позволяет заблокировать ботов, которые постоянно обращаются к редиректорам, например, это могут грабберов контента, или прокси, обходящих другие методы защиты.
Метод позволяет зашифровать URL, либо его часть. С его помощью можно скрыть использование или переопределение настроек других методов защиты. Также используется для SEO-оптимизации.
Метод можно использовать для отслеживания утечек контента и подобных задач, благодаря пометке закачки уникальным идентификатором. Рекомендуем использовать метод совместно с шифрованием URL.
В разделе Настраиваемые per-URL параметры вы можете ознакомиться со всеми поддерживаемыми per-URL параметрами и рекомендациями по их использованию, а также найти необходимые скрипты.
Поскольку боты могут эмулировать действия пользователя на сайте и получать валидные ссылки, которые пройдут проверку защиты CDN, уделите внимание идентификации ботов на стороне сайта, а не только стороне CDN.
Например: установите проверку access-лога веб-сервера на количество запросов с одного IP.