Блокировка домена HTML5?
У меня есть проект, в котором мы создаем динамический видеоплеер на основе html5 с кучей элементов управления и функций Ajax. Намерение состоит в том, что этот плеер будет использоваться другими доменами. Наш старый плеер использовал flash и мог легко заблокировать домен, но теперь есть ли какой-либо способ вообще заблокировать домен в HTML5?
Имейте в виду, что это не только само видео, мы также хотим загрузить html-контент для наших элементов управления на основе ajax. Похоже, что iframe - это очевидное выбор для этого, но тогда нет способа сделать блокировку домена.
Есть идеи?
3 answers
Вы могли бы использовать функцию выше, но довольно очевидно, что она делает, поэтому любой может просто удалить блокировку домена.
Существуют службы, которые заблокируют вашу страницу на доменное имя, я знаю о двух из них с самого начала.
Jscrambler.com - это платный инструмент, но он может быть немного излишним, если все, что вы хотите сделать, это заблокировать свой домен.
Jslock.it - это бесплатный инструмент блокировки доменов, я использую его почти на всех своих сайтах проекты.
Попробуйте прочитать заголовок РЕФЕРЕРА, и если сайт не внесен в черный список, не показывайте плеер.
Я пришел сюда в поисках того же самого. Но я думаю, что у меня есть готовый ответ. Лучший способ, которым я нашел софар, - это удалить местоположение.href его http://, а затем проверьте первые несколько символов для домена, внесенного в белый список. Итак:
if(checkAllowedDomains())
{
initApplication();
}
else
{
// it's not the right domain, so redirect them!
top.location.href="http://www.snoep.at";
}
function checkAllowedDomains()
{
var allowed_domains=new Array();
allowed_domains.push("www.snoep.at");
allowed_domains.push("www.makinggames.nl");
allowed_domains.push("www.google.com");
// add whatever domain here!
var domain=top.location.href;
domain.replace('http://','');
var pass=false;
for(i=0;i<allowed_domains.length;i++)
{
var shortened_domain=domain.substr(2,allowed_domains[i].length);
if(shortened_domain.indexOf(allowed_domains[i])!=-1)
{
pass=true;
}
}
}
Этот фрагмент кода проверяет несколько разрешенных доменов, вы можете легко расширить массив. В этом и заключается проблема с кодом, он очень удобочитаем. Поэтому я бы посоветовал вам пропустить его через js-минимизатор, чтобы сделать его менее очевидным, и включить его в КАЖДЫЙ js на ваша страница. InitApplication() - это функция, которая запускает вашу страницу или приложение.
Поскольку вы удаляете местоположение http:// (которое может быть там, а может и не быть), а затем проверяете только определенную длину (включая WWW!) разрешенного домена, вы исключаете поддомены, которые могут выглядеть так: google.com.mydomain.com и бросьте чек!
Надеюсь, это поможет.