HTML5 блокировка домена? - PullRequest
       108

HTML5 блокировка домена?

2 голосов
/ 17 января 2012

У меня есть проект, в котором мы создаем динамический видеоплеер на основе html5 со множеством элементов управления и функций Ajax. Предполагается, что этот игрок будет использоваться другими доменами. Наш старый плеер использовал flash и мог легко блокировать домен, но теперь есть ли любой метод для блокировки домена в HTML5?

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

Есть идеи?

Ответы [ 3 ]

1 голос
/ 24 сентября 2013

Я пришел сюда в поисках того же. Но я думаю, что у меня есть выработанный ответ. Лучший способ найти софар - это удалить location.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-minimizer, чтобы сделать его менее очевидным, и включить его в КАЖДЫЙ js на вашей странице. InitApplication () - это функция, которая запускает вашу страницу или приложение.

Поскольку вы удаляете расположение http: // (которое может быть или не быть там), а затем проверяете только определенную длину (включая WWW!) Разрешенного домена, вы исключаете субдомены, которые могут выглядеть следующим образом вот это: google.com.mydomain.com и брось чек!

Надеюсь, это поможет.

1 голос
/ 08 сентября 2014

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

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

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

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

1 голос
/ 27 февраля 2013

Попробуйте прочитать заголовок REFERER, и если сайт не занесен в черный список, не отображать проигрыватель.

...