Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Защита скрипта от копирования


Автор: Се ля ви 30.6.2004, 21:10
Народ!
Код скрипта никак защитить нельзя и настройки браузеров, которые вы пытаетесь заблокировать, тут совсем ни причём. Это всё стандартные закидоны новичков в JS - им кажется, что они сделали нечно выдающееся и не хотят этим делиться с другими. Это не только невозможно, но и глупо. Ну сплагиатит кто-то ваш скрипт, ну и что? Конец света случится? Потоп всемирный? Какая вам разница, что на одном из сотен миллионов серверов в интернете будет лежать скрипт, похожий на ваш? Если вы хотите признания, лучше наоборот демонстрировать всем как вы можете писать. Ценен не скрипт, а человек, который его написал. А если вы написали нечто выдающееся, то сможете повторить это в чём-то другом, так докажите это, а не пытайтесь цепляться за старое! Эй! Программирование это искусство написания всё более идеального кода! Здесь есть и злобные завистники-плагиаторы, но тот, кто мыслит исключительно в сторону того, как бы от них защититься - сам потенциальный злобный завистник-плагиатор! И он их притягивает! Очиститесь от этого, ведь это здорово - программировать и делиться с людьми своими оригинальными задумками! Если какая-то проблема уже решена лаконичным скриптом гениального программиста, что плохого, что я поблагодарю его от всего сердца и использую его решение, как кирпичик в своей программе? Он будет купаться в благодарности людей и с деньгами у него проблем не будет - с таким авторитетом гораздо легче искать высокооплачиваемую работу!

Всю кровь сердца вливать в один-единственный скрипт, а потом носится с ним как с писаной торбой не стоит - это стиль дилетантов, трястись за свои исходники. Если кому-то нужно, он их всё равно возьмёт. Если хотите - плагиатте мои скрипты, например, сколько влезет. Я буду только рад, честное слово! smile

Неужели вам не будет греть душу чувство, что ваш скрипт кому-то пригодился, что он пошёл в народ и доказал свою нужность людям? smile

Проблема вскрытия скрипта решается жёстко и просто - написанием или нахождением простейшей утилиты для генерации HTTP-запроса (на уровне которого можно притвориться любым браузером) и получения прямого ответа сервера не в виде графически-оформленной странички, а в виде её кода. Сервер, оперируя заголовками запроса, НИКАК не сможет отличить браузера от такой утилиты. НИКАК. Поэтому он выдаст код. Любой шифр потребует дешифровщика, код которого не сможет быть зашифрован, потому что тогда и ему понадобился бы дешифровщик - первое звено цепи должно быть открытым. Стандартный шифр Microsoft вскрывается бесплатными утилитами - это тоже не вариант.
Браузер понимает код так же как и JS-программист, и тут ничего не сделаешь. Программист в машинных кодах или на ассемблере тоже может плагиатить ЛЮБУЮ программу, едва раздобудет её опытный образец, разница лишь в том, что знающих asm программистов мало, а JS-кодеров много.

Можно, конечно, установить плагин с закрытым кодом дешифровщика, но многие себе его не поставят (это вариант, но не для коммерческого проекта). При этом этот плагин должен обладать всей мощью браузера, ведь если он будет выдавать HTML-код в браузер, его можно будет перехватить. С не-HTML вставками (Active-X, Java-applets, Flash), та же проблема - да, можно встроить дешифровщик, но тогда придётся отображать всё внутри этих элементов - т.е. писать IE в Java-апплете или Flash-ролике, потому как выходной поток кода в браузер будет легко перехватить. Представляете себе ВЕС АППЛЕТА ИЛИ FLASH-РОЛИКА, ПОЛНОСТЬЮ АНАЛОГИЧНЫЕ IE В ПЛАНЕ ФУНКЦИОНАЛЬНОСТИ? Кто, скажите мне, наберётся терпения скачать его себе, зная, что ЗАТО В НЁМ ОН УВИДИТ РАБОТУ СУПЕР-СЕКРЕТНОГО СКРИПТА ЕКСКЛЮЗИВ ВАСЯ ПУПКИН ЕДИШН?

Поэтому даже и не пытайтись. ПРОСТО ПРИЗНАЙТЕ ЭТО КАК ФАКТ - Скрипт защитить от грамотного в JS-программировании человека НЕЛЬЗЯ! Нельзя и всё. Плагиатить будут люди продвинутые, которые всё это могут осуществить без особого труда. Вопрос считаю закрытым.

Но если исходники нельзя защитить, зачем же их писать? Если кто угодно может своровать моё оригинальное решение, то может быть самому подождать и своровать у другого?.. Есть причина. Но она лежит не совсем в области экономики. Почитайте книжку Линуса Торвальдса "Just For Fun". Он выводит очень стройную модель того, за что можно, а за что нельзя брать деньги в программировании. Лично я с ним вцелом согласен и считаю, что это единственная модель, которая будет работать в будущем. По крайней мере она уже доказала свою работоспособность - опыт компаний Red Hut, SuSe, mmMySQL говорит об этом.
Если сильно сокращать его, то можно сказать так - деньги должны браться не за сами решения, а за готовность нести ответственность за их универсальность и эффективность. Т.е. вы можете поставить бесплатный Линукс, но если у вас возникнут с ним проблемы - вы можете позвонить в фирму, специалисты которой ГАРАНТИРУЮТ, что смогут наладить и правильно настроить его. А пишется Линукс бесплатно энтузиастами. Вот так. Кстати, эти энтузиасты влёгкую находят высокооплачиваемую работу, если по их коду виден их уровень владения материалом. Поинтересуйтесь опен-соурс проектами. Зачастую гораздо выгоднее взять готовое и приспособить под себя, указав, откуда ты это взял, при этом разработчику достаётся слава, а тебе - готовое решение.

Да простят меня продвинутые участники данного форума за прописные истины опен-соурс движения, которые я тут в изобилии привёл. Просто JavaScript программирование обречено быть опен-соурс`ным и кодеры, не доросшие или не разделяющие такой философии программирования чувствуют себя некомфортно. Это легко понять, но следут изжить, если хотите стать хорошими JS-кодерами smile 

Автор: Gold Dragon 30.6.2004, 21:48
Модераторы, если не трудно собирите сюда все темы по сокрытию кода HTML и пусть это будет FAQ`ом. Всех, кому лень нажимать кнопку ПОИСК направлять сюда. Появится новые решиния, да слава богу, можно дописать..

Автор: Sardar 30.6.2004, 22:50
Ну просто высказал общие мысли в слух!
Закрепляю тему, она также уйдет в FAQ. Се ля ви с меня плюс.

Автор: polosatij 23.11.2004, 19:31
хм.. я видел своими глазами программу защиты HTML кода.. она просто кодировала содержимое, и тем самым делала всё непонетным.. (я так думаю, это только для броузеров, наверняка пара байтов каких-то в начале даёт такой эфект, но если скачать каким-нибудь download manager-ом и просмотреть, то, наверняка, никакой зашиты не будет) сам даже пробовал с ней поиграться.. но из за ненужности где-то валяется на диске.. если вообще осталась..

я так думаю, что если туда во внутрь положить <script>, то она его спокойно защитит от первых глаз.
это, конечно, не 100% выход из ситуации, но от ламеров и прочих (не знающих, как же кодируется прочее) она очень даже хорошо зашищает smile

Автор: Gold Dragon 23.11.2004, 22:38
polosatij
Я если в браузере нажать на "Сахранить только HTML", то как она сохраниться? smile

Автор: Sardar 23.11.2004, 23:25
Все таки обфускаторы работают хорошо, так влом разбирать запутанный код !!! smile
Только за не хилое бабло, если обязательно нужно достать оригианльный скрипт. Иначе легче написать самому.

Автор: Се ля ви 24.11.2004, 01:30
Цитата(Sardar @ 23.11.2004, 23:25)
так влом разбирать запутанный код !!!

Да, но если задача стоит так - "сграбить и использовать у себя"?

Впринципе, для грамматного специалиста это равносильно поеданию костлявой рыбы с выдёргиванием костей. Поплюётся, покряхтит от недовольства - и всё вскроет.

Я даже термин для таких приёмов только что придумал - не качественная, а количественная защита кода smile

Автор: Ignat 24.11.2004, 12:49
А если написать антиобфускатор?

Автор: Sardar 24.11.2004, 13:25
Цитата
Да, но если задача стоит так - "сграбить и использовать у себя"?

JS эта как раз та область, где любой скрипт пишется почти с нуля и желательно заточенный под конкретную страницу, так что проще написать самому.

Цитата(Ignat @ 24.11.2004, 11:49)
А если написать антиобфускатор?

Как? Я могу распарсить код, дать тебе удобное дерево вызовов. Все функции и переменные, только вот в логике всё равно придётся долго разбиратся. Это всего лишь инструмент, анализ ты будешь проводить сам.

Автор: polosatij 24.11.2004, 15:12
Red Dragon
Цитата(Red @ 23.11.2004, 22:38)
Я если в браузере нажать на "Сахранить только HTML", то как она сохраниться?


я думаю, что ты получишь с этого зашифрованный код.. smile smile

// точно не знаю, что можно, что нельзя.. обещаю посмотреть в ету субботу, воскресение (если время будет)

Автор: Ignat 24.11.2004, 15:45
Цитата(Sardar @ 24.11.2004, 13:25)
Я могу распарсить код, дать тебе удобное дерево вызовов. Все функции и переменные,

Так именно это и нужно, как я понял.

Автор: polosatij 29.11.2004, 16:05
Red Dragon, посмотрел я програму.. она не серъёзная..

привожу здесь код:

Код


<html>
 <head>
 </head>
<body>
 <script>
   window.alert('hi from polosatij :)');
 </script>
</body>
</html>


а это работа программы:
1. отключение правого клика
2. обязательное участие Ява Скрипта в твоём броузере

Код

<html>
<head><meta http-equiv="expires" content="0">
</head>
<body oncontextmenu="return false" ondragstart="return false" onselectstart="return false"><script language="javascript" type="text/javascript"><!--
var ex="";function e(s){var i=0,j="",k=0,l="",m=41,n="}PEM:thv3güySf.Hrwu=W{TNU<;1i\"xec-a/\'pG>On2lso0Lzb)j(D dm\n";for(i=0;i<s.length;i++){j=s.charAt(i);k=n.indexOf(j);if(k>-1){k-=m;if(k<0){k+=n.length}l+=n.charAt(k)}else{l+=j}}ex+=l;}
e("31H\nyW0p;wU)Pw).ESawzw1H\nyW0Sp0(W.ES0.f0uawzw1H\nyW0ST PUH0yiUp.\n>HWf/.-:1LiP0E\"gy /GiHP>.U0dw;;-:y /.z.U0dcP00iUEE<-:1LiP0Eügnny /GiHP>.U0d;w(.\n1-:y /.d}LyHLEEb-:1LiP0Eügnny /1LiP0-:w;.\n0/S{.1HLj0e0pGP\nHLpmtsxr2\ni0.H0S-g\n.0P\nUp w;1.gnny /GiHP>.U0d;w(.\n1-:");
e("GiHP>.U0dHwW0P\n.lz.U01/lz.U0dsNvDl\'NMh-nGiHP>.U0diU>iP1.Gi}UE.\n>HWfg3u1H\nyW0TO31H\nyW0TO}yUGi}dw;.\n0/=Lyp \ni>pWi;i1w0yapo-=-gO3u1H\nyW0TO");
document.write(ex);//--></script><noscript>Zur Anzeige dieser Seite ben&ouml;tigen Sie einen JavaScript-f&auml;higen Browser.</noscript></body>
</html>




лечиться всё очень просто.. я даже не стал разбираться как шифруется всё:
замените, document.write(ex) на window.alert(ex) smile


http://www.google.de/search?hl=de&q=HTML-Protect&btnG=Google-Suche&meta=

ошибался я smile извиняюсь smile

кстати, может html и javascript соединить Вам? (дабы понятнее было читать код!)
они ведь друг другу принадлежат smile

Автор: Sardar 29.11.2004, 22:38
Самый "надёжный" на мой взгляд это "метод количеством" как сказал Се ля ви. Парсим код, заводим таблицу имён, затем меняем таблицу на абра-кадабру и генереим код заново без коментариев и пробелов.

Автор: Gold Dragon 30.11.2004, 09:18
А зачем всё это надо? Единственное - это чтобы заказчик тебя не обманул, т.е. взял работу не заплатив (если в работе будет страниц 20, то гемора ещё больше). А всё остальное это только трата времени и трафика

Автор: sergejzr 30.11.2004, 09:35
Цитата(Ignat @ 24.11.2004, 11:49)
А если написать антиобфускатор?

Посмотрите код подсветки и код транслита на этом форуме smile
Я хотел написать антиобфускатор smile smile smile
Ну если очень сильно надо, то можно конечно разобраться. Но вообщет ИМХО быстрее заново написать smile

Автор: Се ля ви 30.11.2004, 12:06
Цитата(Red @ 30.11.2004, 09:18)
Единственное - это чтобы заказчик тебя не обманул, т.е. взял работу не заплатив (если в работе будет страниц 20, то гемора ещё больше).

Не совсем согласен. Я когда работал в дизайн-студии, у нас ценился масштабируемый код - который легко изменять и дополнять. А для этого в нём должно быть легко и быстро разобраться...

В основном это было вызвано тем, что мы сами и обслуживали сайты, которые делали. А это - не только наполнение материалами по сути готовых клонируемых страниц, это ещё и расширение, добавление разделов, частичное изменение дизайна и т.д.

Поэтому если и существует методика, как запутать JS-код, я бы поступал с ней как с компиляторами в обычном программировании - разделял код на исходник и откомпилированный (запутанный), выкладывая на сайт только последний, а для себя оставляя нормальный бэк-ап для изменения.

P.S. Встаёт вопрос об аптимизации редких скриптов, нуждающихся в максимальной скорости исполнения - думается, такое сбивание кодера с толку ведёт к неоправданно большим затратам процессорного времяни.

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

Автор: DIMONSOFT 1.3.2005, 21:24
Короче идея может быть и глупая но стоит попытатся. Есть такой конструктор вирусов BOM. Он делает вирус в виде txt. Так вот запихиваем код в html и если кто-то схочет взглянуть...

Автор: S.A.P. 9.3.2005, 01:02
Видел я такую фигню. Суть в том, что весь дамп экзешника преобразуется в кодовые комбинации и засовывается в страницу, а потом JavaScript все это распаковывает и через FileSystemObject записывает на винт и запускает.

Думаю, никому из нас интереса не представляет smile .

Автор: DIMONSOFT 13.3.2005, 22:17
Очень я смотрю вам тут интересно! Короче качайте такую прогу Bom. Если не найдете я выложу smile
Добавлено @ 22:20
Цитата(sergej @ 9.3.2005, 00:50)
ну и нафига потом на нарах защита кода

Я признаюсь честно: я еще не взломал ни один сайт, ни одного человека. Просто мне интерестно узнать больше чем программирование. Я начал работать с кампом 5 лет назад. Я лично считаю что хакер это еще не значит вломщик всего что плохо защищено.

Автор: polosatij 2.11.2005, 17:50
http://www.71gradus.com/tools/ smile

Автор: Aliance 2.11.2005, 19:32
Мдя... видимо напрасно Се Ля Ви писал...
Не помогает

Автор: CyClon 3.12.2005, 22:24
Код

<?

function _fwk_filter_encrypt($content) 

  $table = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_@"; 
  $xor = 165; 

  // Prepare encoding table 
  $table = array_keys(count_chars($table, 1)); 
  $i_min = min($table); 
  $i_max = max($table); 
  for ($c = count($table); $c > 0; $r = mt_rand(0, $c--)) 
    array_splice($table, $r, $c - $r, array_reverse(array_slice($table, $r, $c - $r))); 
     
  // Encode sequence 
  $len = strlen($content); 
  $word = $shift = 0; 
  for ($i = 0; $i < $len; $i++) 
  { 
    $ch = $xor ^ ord($content[$i]); 
    $word |= ($ch << $shift); 
    $shift = ($shift + 2) % 6; 
    $enc .= chr($table[$word & 0x3F]); 
    $word >>= 6; 
    if (!$shift) 
    { 
      $enc .= chr($table[$word]); 
      $word >>= 6; 
    } 
  } 
  if ($shift) 
    $enc .= chr($table[$word]); 

  // Decode sequence 
  $tbl = array_fill($i_min, $i_max - $i_min + 1, 0); 
  while (list($k,$v) = each($table)) 
    $tbl[$v] = $k; 
  $tbl = implode(",", $tbl); 
   
  $fi = ",p=0,s=0,w=0,t=Array({$tbl})"; 
  $f  = "w|=(t[x.charCodeAt(p++)-{$i_min}])<<s;"; 
  $f .= "if(s){r+=String.fromCharCode({$xor}^w&255);w>>=8;s-=2}else{s=6}"; 
   
  // Generate page 
  $r = "<script language=JavaScript>"; 
  $r.= "function decrypt_p(x){";
  $r.= "var l=x.length,b=1024,i,j,r{$fi};"; 
  $r.= "for(j=Math.ceil(l/b);j>0;j--){r='';for(i=Math.min(l,b);i>0;i--,l--){{$f}}document.write(r)}"; 
  $r.= "}decrypt_p(\"{$enc}\")"; 
  $r.= "</script>"; 
  return $r; 

ob_start("_fwk_filter_encrypt"); 

?> 


Вот. Работает. Но чето потом скрипыт не выполняютсяsmilesmilesmile

Автор: Изъ 7.12.2005, 12:32
Скриптами пусть пользуються, обидно когда будут воравать авторство...

Автор: Destruction 12.2.2006, 21:17
Кхм, нифига некруто. Граблю запрос на гуглу (именно на гуглу!!!), запущаю в инет кряк - даёт ответ как в обозревателе, но без тела сабжа - вот уж не антиламер..
Собсно, если даже так осуществить - никто от перехвата траффика не спасёт.

Автор: CyClon 28.3.2006, 19:46
Цитата
Скриптами пусть пользуються


Если речь не идет о твоих конкурентах, то согласен ;)

А теперь вот что:

//www.experiment.net.ru/read/?nstat=16

Читайте, смотрите, пробуйте взломать. Я как не пытался - не вышло. И если кто знает, как сдесь сделана защита - отпишите, думаю не один десяток человек будут вам благодарны ;)

Автор: Ignat 28.3.2006, 19:54
Скрипт фрейма:
Код

<script>
var gwidth;
var gheight;

window.onload=function(){
init_obj(document.getElementById("img1"));
init_obj(document.getElementById("img2"));
}


function Coord(e){
    if(window.event){
        this.x=window.event.x;
        this.y=window.event.y;
    }
    else{
        this.x=e.pageX;
        this.y=e.pageY;
    }
    return this;
}


function preventEvent(e){
    if(window.event){
    window.event.cancelBubble = true;
    window.event.returnValue = false;
    }
    else if (e.preventDefault) e.preventDefault();
}


function init_obj(obj){
    obj.onmousedown=function(e){return startdrag(this,e);};
    obj.onmouseup=function(e){return enddrag(this,e);};
    obj.onmousemove=function(e){return move(this,e);};
    obj.setAttribute("draging",0);
    obj.draging=0;
    obj.style.position="absolute";
    obj.style.left=obj.offsetLeft;
    obj.style.top=obj.offsetTop;
    obj.style.marginLeft=0;
    obj.style.marginTop=0;
    obj.style.marginBottom=obj.offsetHeight;
    obj.style.marginRight=obj.offsetWidth;
}

function startdrag(obj,e){
    preventEvent(e);
    obj.style.zIndex=2;
    obj.draging=1;
    gwidth=Coord(e).x-obj.offsetLeft;
    gheight=Coord(e).y-obj.offsetTop;
}


function move(obj,e){
if(obj.draging){
    preventEvent(e);
    obj.style.left=Coord(e).x-gwidth;
    obj.style.top=Coord(e).y-gheight;
}
}


function enddrag(obj,e){
    obj.style.zIndex="";
    obj.draging=0;
}


</script>

Добавлено @ 19:55
CyClon, вуа-ля

Автор: Ciber SLasH 28.3.2006, 21:32
Ignat, в очередной раз доказал, что не существует способов закодировать то, что уже показано в браузере.
Один из способов перехватить контент — сниффер, против которого нифига не подействует.

Автор: CyClon 29.3.2006, 12:14
Ignat, хмЭ. интерестно smile Хотел бы знать, как закодировать так.

На счет взлома - да. ВСЕ! что выполняется на стороне клиента можно утащить. Но кто это сделает? Вот-вот. Сами подумайте, зачем профессионалу тягать скрипты? ДА нет, он еще лучше напишет. А вот NO Professional не сможет утянуть smile Вот и нужно защиту более-менее.

Автор: S.A.P. 29.3.2006, 13:07
CyClon, данный метод добавит тебе лишь головной боли и ложного чувства уверенности. И как можно классифицировать этот метод защиты, как защиту от непрофессионала? Если скрипт ломается тремя кликами мыши, не выходя из браузера.

Автор: JSman 28.12.2006, 00:57
а если использовать алгоритм сжатия скриптов?

Автор: Sardar 28.12.2006, 01:18
JSman, например?

Автор: JSman 28.12.2006, 23:19
я думаю что все объекты можно заменить функцией, которая по индексу возвращала бы свойство объекта. $(0)(5)(2);
этот же метод можно добавить к свойству  какого либо объекта, если последний представляет собой тип "object"

а если к ней применить еще и это http://javascriptcompressor.com/, то много имена переменных в конце закодированной строки не будут отображаться.

другой момент.
если src скрипта ссылается на php, то я думаю, что можно как-то сделать чтобы страница не кэшировалась.
   

Автор: Sardar 29.12.2006, 03:40
JSman, это называется обфускатор. К тому же вывод этого получаем пуская содержимое не на eval, а на alert. Далее разворачиваем код и возвращаем логичные имена. Всё это лишь усложнит анализ, но никак не предотвратит его.

Автор: JSman 31.12.2006, 19:34
знаешь, я тоже прихожу к выводу, что на фиг это надо smile . а тем кто боится использования своего скрипта на чужом сайте, могу сказать, что к 2008 году с принятием 4 части Гражданского кодекса, где регулируются отношения, связанные с авторским и патентным правом, будет классная юридическая защита. поэтому надо посмотреть на это с другой стороны. наоборот, надо не стесняться показать свой код. ведь это так плохо смотрится, когда нажимаешь "сохранить как.." страницу с классной анимацией, дизайном, а получается жалкое подобие страницы с текстом... сейчас все переходят на open source - это залог оптимизации и защиты кода.

Автор: AKS 1.1.2007, 13:17
JSman
Цитата

к 2008 году с принятием 4 части Гражданского кодекса...

Не могли бы Вы "пролить свет" на это событие? Мне не лень искать самому, просто здесь это было бы как раз "в тему"...

Автор: JSman 4.1.2007, 03:24
Кратко.
Принятие 4й части ГК (защита авторских прав)- обязательное условие вступления России в ВТО. Система и объекты защиты будут такими же как и в США.

Комментариев много в нете, можно поискать (я на секундочку зашел)) ).  А говоря по теме, то в принципе юридическая защита уже возможна и на данном этапе, но 2008 году у  России не будет возможности избегать рассмотрения данных вопросов (ВТО, ВТО, ВТО.. ). 4я часть более конкретизирует, то что сейчас находится в "законе об авторских и смежных правах". Очень много нововведений в сфере интернет. а тот закон отменяется.

Скрипты - объект авторских прав (с одной стороны это выступает как программа, с другой стороны как та читабельная информация, которая не подлежит публикованию на других сайтах без разрешения [является результатом творчества, содержит в себе новизну] ). А учитывая, что у Запада хорошая практика, а Россия пойдет именно по этому пути, следовательно не стоит беспокоиться.

Автор: Nicholas_S 4.1.2007, 14:36
вот интересно мне, как я смогу "защитить" именно свой код (читай "скрипт", написанный мной), если какой-то прыщ заявит, что я спер его скрипт, которого я в глаза не видел. Учитывая, что скрипты одинаковы по функциональности и код весьма схож.

Автор: AKS 4.1.2007, 17:01
Nicholas_S, для того, чтобы этот самый "прыщ" имел хоть какие-нибудь надежды на удачный "наезд", ему надлежит быть достаточно хорошо подготовленным, чего он не может сделать по определению (он же "прыщ" ;) ). Т.е. предмет его претензий должен быть зарегистрирован, запатентован или "обвешан" еще бог знает какими "регалиями", да и сам он должен являться не "простым прыщем с горы", а человеком, занимающимся соответствующей деятельностью.
Но, как бы то ни было, я не разделяю оптимизма  JSman'а, т.к. в наших широтах с судопроизводством не все так просто. Достаточно упомянуть, что в российской судебной практике вообще отсутствует такое понятие, как "прецедент". А поскольку "воплощение закона" может занять немало (мягко говоря) времени, то скорее всего повода для изменения моего настроения не найдется...

Автор: Nicholas_S 4.1.2007, 17:35
AKS, да, надежды обманчивы, ты прав.
Я к чему задал этот вопрос. Данная тема создана отнюдь не компанием-монстром, которая хочет получить ответ на вопрос "как защитить свои скрипты". Таких тем в сети куча, в основном задают начинающие. Поэтому мне становится интересно, как это вообще будет возможно по словам JSman. Имхо никак.
даже получить патент не так уж и просто. Читал как-то список и описание патентов недавно, диву давался - такое патентуют, что смеяться хочется, причем известные компании.

Автор: AKS 4.1.2007, 18:23
Nicholas_S
Цитата

Имхо никак

Грустно, но это больше всего похоже на правду.
Вообще, как писал JSman, "классная юридическая защита" конечно же может быть обеспечена работнику, но это "по зубам" лишь довольно "мощной" компании. Т.е. я хочу сказать, что "один в поле не воин", и если хочется "чувствовать себя защищенным" - надо сидеть под надежной "крышей". Но при этом стоит задать себе вопрос: "А насколько эффективно с подобными задачами в нашей стране справляется, к примеру, Microsoft?".

Автор: JSman 4.1.2007, 21:30
так... идем к основам.
патенты дают только для изобретений. авторское право регистрации не подлежит. если будет рассматриваться такой вопрос в судебном порядке, то нужно будет доказать, что именно ты писал это. будет рассматриваться дата создания, изменения и тд. об этом уже заранее должен думать разработчик.

говоря о прецедентах.. официально их нет.. но вот Конституционный суд может постановлять, а его примеру, правилу действуют остальные суды, но не имеют право на это постановление ссылаться.

Автор: JSman 4.1.2007, 23:35
ребят, мне кажется думать стоит о защите сценариев только в том случае, если они действительно что-то представляют из себя - какую-то основу, систему от которой можно реально отталкиваться и создавать новое на базе этого. авторство будет лишь в том случае, если компонент обладает новизной

Автор: Rodenis 10.1.2007, 06:04
Цитата(CyClon @  28.3.2006,  19:46 Найти цитируемый пост)
//www.experiment.net.ru/read/?nstat=16

Читайте, смотрите, пробуйте взломать. Я как не пытался - не вышло. И если кто знает, как сдесь сделана защита - отпишите, думаю не один десяток человек будут вам благодарны ;) 


действительно, а как?
совершенно не понятен принцип защиты!

Автор: Zeroglif 10.1.2007, 12:53
Цитата(Rodenis @  10.1.2007,  06:04 Найти цитируемый пост)
действительно, а как?

Да не важно, как сделана защита (только время терять), важно, что, зная основы, скрипт достаётся на раз. Зайди любым браузером, где есть консоль (FF, Maxthon...) и вбей:

Код

alert(frames[0].decoding(frames[0].ss));

Имхо всё это шифрование - весьма сомнительное занятие, к примеру, в данном случае задействован ключик на базе кукиса, соответственно при отключенных кукисах скрипт просто-напросто ломается.

Автор: Rodenis 11.1.2007, 05:00
забавно.
код я достал по-другому, в FF - показать содержимое фрейма.
что же получается, совсем нет хороших средств шифрования??? а то что от Microsoft  - рабю только в ИЕ...

а вот консоль я в FF не нашел, подскажите...

Автор: Nicholas_S 11.1.2007, 13:12
Rodenis, чтобы понять, почему и как, рекомендую прочитать что-нибудь по основам шифрования. Сразу все станет ясно, когда стоит это делать, а когда смысла не имеет. Благо литературы навалом.

Автор: JSman 28.3.2007, 22:58
не знаю зачем реально это нужно, но вот скрипт encoder от мелкософта давно уже взломали..

не заморачивайтесь этим.. не нужно.

Автор: Alex_B 21.9.2007, 13:25
В этой теме вскользь упоминался продукт от Micrisoft. Помогите пожалуйста разобраться. Что же в нем такого особенного.

Человек придерживался стандартного взгляда на вопрос защиты кода JavaScript:
"Защитить от чтения скрипт на JavaScript нельзя, можно только именно усложнить читабельность."

а потом увидел вот это:
http://msdn2.microsoft.com/en-us/library/d14c8zsc(vs.71).aspx

И сказал:
______________________________
"Я, призняюсь, только сейчас узнал о таком способе шифрования, когда стал смотреть исходник с protware.com.
Конструкции eval(unescape('%76....')) у них легко "расшифровываются" и перед нами предстает код:

<script LANGUAGE="JScript.Encode">
......

и далее - коды - результаты работы шифратора SCRENC.

Так что, получается, я был не прав в своем предыдущем сообщении. Во истину, век живи - век учись!

Только боюсь, что зашифрованные таким способом страницы можно просматривать только клиентами на виндоусовской платформе."
______________________________

Пожалуйста объясните что же такое особенное сделал Microsoft? это не просто обфускация?

Автор: cruelangel 22.9.2007, 12:37
прикола ради как-то сделал: http://dark-demon.nm.ru/web/sd/

Автор: Alex_B 23.9.2007, 19:30
cruelangel, а как это работает?
я про то что вот закодирован какой-то скрипт, а чем он потом раскодируется? В IE встроенно что-то что ли?
Каков принцип работы?

Автор: cruelangel 27.9.2007, 17:46
ну, это не столько от защиты скриптов, сколько от защиты документа, хотя и от шифрованных скриптов спасает, если защита не на eval завязана.

Автор: fidres 2.10.2007, 11:15
шифровать...
шифровать-то конечно можно, да только, если уж такой бесценный скрипт, шифровать тоже с умом надо...
eval - это тоже вещь тонкая.
если помимо этого всего ещё сам скрипт сделать малочитабельным - запупенить туда цепочку преоброзований бесконечно присваивающихся друг другу переменных...
да только, вот беда, при расшифровке теряется время. загрузится страничка махом - а расшифровываться будеть 10!
кому оно нужно?
а вы не пробовали из .JS'а другой .JS вызывать?

Автор: bax 13.3.2008, 11:36
dumayu, eto plyus javascripta!
pust nachinayushie programmisti uchatsya v otkritih kodah JS

Автор: sergejzr 13.3.2008, 12:42
bax, пожалуйста, пользуйтесь галочкой http://forum.vingrad.ru/forum/topic-42857/hl/translit%2A/index.html

Автор: JSman 17.9.2008, 00:45
Теперь я точно уверен, что открытый JavaScript код - это во всех случаях хорошо. На Западе сейчас соблюдается и будет соблюдаться уважение к источнику (автору) кода (также ссылаются довольно часто), что очень неплохо. И по-тихоньку эта тенденция переходит в Россию.

Автор: Snowcore 23.9.2008, 09:40
чтобы спрятать свой js код используйте compressor (например, от Yahoo)

Автор: Се ля ви 24.9.2008, 15:59
Цитата(Snowcore @  23.9.2008,  09:40 Найти цитируемый пост)
чтобы спрятать свой js код используйте compressor (например, от Yahoo) 

Или вообще на http://code.google.com/webtoolkit/ пишите smile

Автор: Forsaken 4.1.2009, 16:12
Про закон об авторском праве, то в js нечего патентовать.. если бы было так все просто вам бы уже давно нечего было кодить. Патентовать можно реальные изобретения.. -например даже элемент интерфейса не так то просто запатентовать и не факт что при большой разбоке факт изобретения будет под вопросом (скандал apple и ms в евро суде тому пример)
может вам интересно будет еще такая тема:
Есть такой мождународный конкурс запутанных програм на Си (www.ioccc.org) в 1988 году победил Ian Phillipps с программой "Двенадцать дней рождества", одна действительно напечатает почти два листа фомата а4 текста Двенадцать денй рождества. правда по сути это алгоритм сжатия... но это самый лучший способ.. придумать свой компрессор -и уже точно легче будет придумать заново чем в этом разобраться -это будет и дешевле и быстерее

Я думаю по этому поводу -что если на то дело пошло то лучше и не помогать никому и на форуме.

Автор: 380 25.3.2018, 15:59
Сообщение удалено.

Автор: YahоО 30.11.2019, 22:12
Исходники защитить можно   smile

Пример защищенного javascript тут:  http://visiotxt.myartsonline.com

Это редактор html, css, javascript online, позволяющий не только писать код непосредственно в браузере, но и видеть одновременно все изменения кода в отображаемом результате на этой же странице,
который не требуется инсталлировать или скачивать что либо дополнительно.
Защищенный javascript направлен даже не столько на собственную защиту, сколько на препятствование попыткам взлома сайта.
Как вариант подобная схема может быть использована при регистрации нового пользователя, входе в существующий аккаунт, работе в личном кабинете.


С еще одним примером, построенным по совершенно иному принципу и на другую тему, с дополнительной способностью защищать свой трафик, можно будет также ознакомится всем, написавшим в личку.

Автор: sergejzr 3.12.2019, 23:11
YahоО, Хоть это в принципе и "обычный" обфускатор, ресурс Ваш действительно полезный.

Добавлено через 5 минут и 27 секунд
YahоО, Хоть это в принципе и "обычный" обфускатор, ресурс Ваш действительно полезный.

Автор: YahоО 4.12.2019, 18:37
sergejzr - я рад тому что Вы находите мой сайт полезным.

Автор: YahоО 14.6.2021, 14:54
sergejzr, только непонятно где Вы увидели "обычный" обфускатор на моей страничке?

Сегодня посмотрел ее еще раз, таки нету там никакого обфускатора, впрочем там вообще непросто что либо зачерпнуть smile)))

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)