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
|