Я пришел сюда в поисках того же. Но я думаю, что у меня есть выработанный ответ.
Лучший способ найти софар - это удалить 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 и брось чек!
Надеюсь, это поможет.