On-Line Библиотека www.XServer.ru - учебники, книги, статьи, документация, нормативная литература.
       Главная         В избранное         Контакты        Карта сайта   
    Навигация XServer.ru






 

Защита Вашего Swf ролика от кражи

Tiran Dagan

Вступление

Иногда мне достаточно взглянуть на SWF файл, чтобы понять как работаёт то, на что я точил давненько зуб. А иногда ничего не понятно, и так и хочется стащить такую работу. А чтобы с Вами так не поступили.........

Проблема

Я Вас научу как защитить свою работу от копирования и бесконтрольного с Вашей стороны распространения в Интернете. это особенно касается тех, кто публикует крутые SWF ролики или мультики, чтобы показать свои работы, и не хочет чтобы кто-то выдал эти работы за свои собственные. Порой вставка в ролик своего имени или копирайта не подходит по некоторым соображениям. Я покажу Вам, как сделать так, чтобы ролик работал только на тех сайтах, которым Вы это позволили.

Проверим URL источника!

protocol=_url.substr(0,_url.indexOf(":"));
if (protocol=="file") {
// Будем добродушны
//Если вымогатель сгрузил Ваш SWF мы позволим ему запустить
// ролик на его компьютере
//
message="Похоже Вы запустили ролик с вашего винчестера.
Так и быть, но знайте, этот SWF будет работать
только на авторском сайте"
} else if (protocol=="http") {
// doubleSlash
// ===========
// Расположение первых "//" iв урле
// url's формируются следующим образом
//
// [protocol]://[server]/[pathname]
//
// Где protocol это либо ftp, file, http, и т.д.
//
doubleSlash=_url.indexOf("//");
//
// server
// ======
// Isolate the server name: Go past the "//", и всё
// между двойным слэшем и "/" (одинарный слэш")
// это имя сервера
server=_url.substr(doubleSlash+2,_url.indexOf("/",doubleSlash+2)-doubleSlash-2);
//
// Давайте избавимся от префикса "www" , потому что
// иногда серверы узнают адрес и без этого
// префикса
// Тут есть маленькая ловушка.....
// Что если пользователь наберёт "http://www.6FootMedia.com"
// Это не тоже самое, что и "http://www.6footmedia.com"
// (Разница в регистре)
server=server.toUpperCase()
//
// Избавимся от WWW. префикса
// и тогда мы сможем сконцентрироваться только на
// проверке имени сервера
if (server.indexOf("WWW.") <>-1) server=server.substr(server.indexOf("WWW.")+4,server.length);
//
if (server.indexOf ("TIRANDAGAN.COM") <> -1 or server.indexOf("FLASHKIT.COM") <> -1) {
message = "С Copyrights всё впорядке";
} else {
message = "Тревога! Копирайт фильма нарушен! Сообщение отправлено автору, чью
работу Вы украли!. \nOffending website path: " + _url;
// Тут вы можете вставить код редиректа ролика на другой кадр
//или вставить getURL на страницу Вашего сайта, извещающую о краже...
}
}
box1=prefix;


Fig.1 - Код во Frame 1 в файле FLA

большая часть этого кода подробна поясняется коментариями. Взгляните на него ещё раз. Идея состоит в том, что _url свойства во Flash 5 содержит вызвавший url, который включает в себя имя сервера на котором запущен SWF (ну находится где). Я предлагаю Вам попробовать хитрый подход в Вашей защите прав, это не выдавать простой механизм Вашей защиты: Просто перенесите фильм в пустой фрэйм с командой stop(); и пользователь (воришка) не поймёт, что не даёт фильму загрузиться.

Результат

Дабы продемонстьрировать этот метод защиты, вам надо будет загрузить SWF файл в Figure 2. Попробуйте запустить его не на своём компьютере. Затем выгрузите его на http сервер и посмотрите, что будет. Вот скриншот:

Fig.2 - Результат запуска SWF не на вашей машине (Это не переведённый вариант, у Вас будет по-русски - прим. переводчика)

Fig.3 - Результат запуска на сервере воришки. (Это не переведённый вариант, у Вас будет по-русски - прим. переводчика)



Литература по FLASH