PDA

Просмотр полной версии : А кто как делает защиту своего ролика путем проверки наличия файла на другом сайте?


ccwds
02.12.2002, 12:38
Ну, в общем, subj... Я понимаю, что лучше путевый договор, чем подобные ухищрения, но мы с вами живем в непростой стране... Если кто делал, поделитесь строкой ActionCкрипта, а то я так перемудрил, что у меня подобная защита, бывает, "по таймауту вылетает", и даже при наличии файлика на моем сайте или правильного значения переменной в нем все равно иногда на секунду пишет: "Заплати и спи спокойно..." :D

ccwds
02.12.2002, 14:40
А еще, как я подумал, можно ставить просто expiration date в ролик - если системная дата больше 1 декабря 2002 года, то рисуем кукиш... Ничего, что я сам с собой разговариваю? ;)

DioniX
02.12.2002, 14:42
меня вот тоже реально волнует данная проблема.

до этого делал триал версию (на 10 дней скажем), когда все нормально меняешь на правильный файл.
Не по людски, но тогда как?

Чингачгук
02.12.2002, 18:47
Да, подобный простейший триал я вставляю уже по умолчанию:

nowDate = new Date();
timesec = nowDate.getTime();
if (timesec > 1039057206200) {
gotoAndStop (3);
}

Вот в этот четверг уже один сайт напишет все, что думает о заказчике... :mad:

А насчет того, чтобы оставлять под контролем, я делаю слегка коряво -
в первом кадре
loadVariables ("http://www.мойсайт/on.txt", "");
индикатор загрузки,
...
...
ifFrameLoaded (какой нужно) {
gotoAndPlay (3);
}



В on.txt - OK=1

Во втором кадре
gotoAndPlay (1);

получается, что попытка loadVariables ("http://www.мойсайт/on.txt", ""); происходит неоднократно

В третьем кадре
if (ОК = 1) {
gotoAndPlay (куда нужно);
}

Но как-то коряво это.

sevast
02.12.2002, 19:47
Эххх.. давно не писал.

так.

задача - дать понять плохим дядям, что уносить исходник - так делать плохо.

//////////////

вариант1.

Это в том случае, ежели на всехх компьютерахх системное время равно московскому и дата соответствует реальной.

onClipEvent(load) {
_global.site = "http://pupkin.ru/";
_global.cheker = site + "cheker/";
_global.isLegal = cheker + "checkThisSite.txt";

// стучимся на сайт изготовителя.

loadVariables(isLegal, this);

// грузим все это добро в клип.
// в текстовом файле - переменная &deathDate=12.10.12&

container = new Date();
year = (container.getYear() - 100);
year < 10 ? year = "0" + (container.getYear() - 100) : 0;
month = (container.getMonth() + 1);
month < 10 ? month = "0" + (container.getMonth() + 1) : 0;
day = (container.getDate() + 1);
day < 10 ? day = "0" + (container.getDate() + 1) : 0;
timeToWait = 15000;

// устанавливаем время, в течении которого будем ждать
// ответа от сайта изготовителя;

}
onClipEvent(data) {
now = day + "." + month + "." + year;
// формируем строку даты на компе.
if (now !== deathDate) {
// ежели все плоххо. откроем сайт изготовителя.
getURL(cheker + "theRealAuthor.html");
// и запустим пустой цикл.
// клиенту покажут слайд-шоу.
for(;;) : 0;
unloadMovie(_root);
// и выгрузим рут. тут мультики и закончатся.
} else {
_root.nextFrame();
// ежели все хорошо - пошли играться;
}
}
onClipEvent(enterFrame) {
getTimer() - timeToWait > 0 ? _root.nextFrame();
// ежели время ожидания вышло - пошли играться.
// а то вдруг файл текстовый не закачался. А клиент
// заплатил уже... :(
}

////////////

Но этот вариант - ...вый. Гемрройно...

вариант2.

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

onClipEvent(load) {
_global.site = "http://pupkin.ru/";
_global.isLegal = site + "cgi-bin/cheker.cgi?timeZone=" + new Date ().getTimezoneOffset()/60;

// стучимся на сайт изготовителя. отдаем ему значение
// смещения времени. скрипт формирует ложное время и
// производит ложное смещение даты относительно
// часового пояса. Получаем cheked 1 или 0.

loadVariables(isLegal, this);

// грузим все это добро в клип.
// в текстовом файле - переменная &deathDate=12.10.12&

timeToWait = 15000;

// устанавливаем время, в течении которого будем ждать
// ответа от сайта изготовителя;

}
onClipEvent(data) {
if (cheked !== 1) {
// ежели все плохо. откроем сайт изготовителя.
getURL(cheker + "theRealAuthor.html");
// и запустим пустой цикл.
// клиенту покажут слайд-шоу.
for(;;) : 0;
unloadMovie(_root);
// и выгрузим рут. тут мультики и закончатся.
} else {
_root.nextFrame();
// ежели все хорошо - пошли играться;
}
}
onClipEvent(enterFrame) {
getTimer() - timeToWait > 0 ? _root.nextFrame();
// ежели время ожидания вышло - пошли играться.
}

////////////

Тут мороки меньше. Управлять легче. Зашел к себе на сайт из курортного города Мухосранска и клиенту неххорошему бяку сделал.

А вдруг у пользователя своя дата? Вдруг он - потомок Исилдура? Или еще чего доброго - Фродо? :).

даа........ остается надеяться, что заказчик - не Гэндальф. :)

DioniX
02.12.2002, 20:56
loadVariables ("url" ,level/"target" [, variables])

Parameters
url An absolute or relative URL where the variables are located. If you access the movie using a Web browser, the host for the URL must be in the same subdomain as the movie itself.

вот это меня и смущает. люди, все вышепреведенное у вам работает? плагин реально грузит файл с другого домена?
или у меня руки кривые.. :( а то что не пишу в своем файле - результат всегда какой-нибудь один - либо показывает "заплати и спи..." либо нет. И проверку загрузки ставлю....

ccwds
03.12.2002, 03:31
sevast Здорово! Что значит системный подход! :cool:

mort
03.12.2002, 12:16
Можно выложить демо сайта на свой сервер и сделать так, чтобы из другого места просто не запускалось (даже с харда).

gOloVasTicK '~
03.12.2002, 13:45
Намба ван. Тристапядесятнафиктысячраз уже говорилось что в целях безопасности флеш не грузит вариаблесы с другого домена.
Намба ту. Проще вставить строку loadMovieNum('http://yoursite.com/clientID/ok.swf',999);
Если все нормально, то ничего делать и не надо. А вот если платить никак не хотят, положить в http://yoursite.com/clientID/ok.swf все что вам вздумается.

ccwds
03.12.2002, 19:22
gOloVasTicK, а ведь тоже интересный способ! Как это в голову не пришло! И главное, ошибка исключена - зазря никогда ничего не появится! :)

domby2001
03.12.2002, 19:38
Предоплата !!! лучший способ...

иначе это месть какая-то получается :D

gOloVasTicK '~
03.12.2002, 20:05
Желающие перечислить мне денежные средства, в качестве благодарности, могут связаться со мной по icq :D :D :D

sevast
03.12.2002, 20:18
Оригинал написал(а) gOloVasTicK '~
Намба ван. Тристапядесятнафиктысячраз уже говорилось что в целях безопасности флеш не грузит вариаблесы с другого домена.
Намба ту. Проще вставить строку loadMovieNum('http://yoursite.com/clientID/ok.swf',999);
Если все нормально, то ничего делать и не надо. А вот если платить никак не хотят, положить в http://yoursite.com/clientID/ok.swf все что вам вздумается.

Не, парень... у меня-то работает...

gOloVasTicK '~
03.12.2002, 22:27
Видимо у тебя плеер не макромедийный =))
Цитирую:

loadVariables

Availability


Flash Player 4.

Usage


loadVariables ("url" ,level/"target" [, variables])
Parameters


url An absolute or relative URL where the variables are located. If you access the movie using a Web browser, the host for the URL must be in the same subdomain as the movie itself.


А вот тебе живой пример:
http://granpree.ru/test.swf
http://www.abovescript.com/test.swf

Совершенно одинаковые скрипты грузящие переменные из: http://granpree.ru/test.txt

С харда естественно все грузится с любых доменов.