Хотя трудно точно контролировать распространение вашего Flash-контента, есть несколько различных путей, по которым вы можете пойти, по крайней мере, усложнить публикацию вашего контента в другом месте.
Один из способов проверить, какой URL-адрес загружает объект swf, - проверить loaderInfo.loaderURL
из класса LoaderInfo .
var url:String = loaderInfo.loaderURL;
Вы также можете проверить URL загрузки, используя JavaScript через ExternalInterface class :
var url:String;
if (ExternalInterface.available) {
url = ExternalInterface.call("window.location.href");
}
Затем проверьте URL-адрес, чтобы увидеть, что он находится в вашем домене, например:
if(!/^https?:\/\/www\.example\.com/.test(url)) {
//This seems to be outside of your domain
}
Вы можете найти дополнительную информацию об этом подходе в этой статье:
http://www.ghostwire.com/blog/archives/as3-domain-locking-swfs/
Другой подход - попытаться загрузить файл из домена, которым вы управляете, это особенно эффективно, если вы уже загружаете внешние ресурсы в свой swf.
Указав абсолютный URL-адрес актива, например http://www.example.com/assets/myExternalAsset.xml
, вместо относительного, например /assets/myExternalAsset.xml
, вы можете установить кросс-доменную политику , чтобы определить, какие домены могут для доступа к контенту.
Если доступ к контенту осуществляется за пределами вашего разрешенного домена (доменов), будет вызвано событие безопасности и загрузка не будет завершена.
Сказав это, я не совсем уверен, если какой-либо из вышеперечисленных методов полностью защитит вас, если ваш контент, например, встроен в элемент iframe на другом сайте.