id: Гость   вход   регистрация
текущее время 12:51 29/03/2024
Автор темы: Alex_B, тема открыта 25/06/2007 15:57 Печать
создать
просмотр
ссылки

Защита JavaScrip

В настоящее время все больше и больше Интернет проектов используют Ajax и соответственно и JavaScript. Есть проекты у которых вся логика перенесена на сторону клиента (JS), а серверная часть только записывает данные в базу и читает данные из базы.


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


Я очень путано всё излагаю, попытаюсь рассказать на примере:
Я написал продукт для web сайтов. Продукт имеет инсталлятор и прост в обращении. Для его использования не нужно разбираться в программировании и прочих вещах.


Я хотел бы продавать свой продукт, но при такой ситуации продать более чем двум покупателям не удастся.


И вот что пришло мне в голову: грузить часть JS кода с моего сервера.
Т.е. скрипт обращается на мой север – там я смотрю с какого доменного имени пришел запрос (проверяю лицензию) и отдаю или не отдаю необходимый кусок.
Этот необходимый кусок должен быть для каждого доменного имени свой.


Как считаете такая схема жизнеспособна? Какие есть альтернативы?
Спасибо.


 
На страницу: 1, 2 След.
Комментарии
— sentaus (25/06/2007 20:54)   профиль/связь   <#>
комментариев: 1060   документов: 16   редакций: 32
Я бы предпочёл поискать другую бизнес-модель.
— SATtva (25/06/2007 21:32)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Т.е. скрипт обращается на мой север – там я смотрю с какого доменного имени пришел запрос (проверяю лицензию) и отдаю или не отдаю необходимый кусок. Этот необходимый кусок должен быть для каждого доменного имени свой.

И что с того? Будет по миру гулять множество вариантов одного и того же [Вашего] кода. Вам от этого станет легче?

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

Соглашусь с sentaus'ом, Вы перед собой ставите недостижимую цель. DRM — вообще затея идиотская, а пытаться реализовать его для js — это недели и месяцы, впустую выброшенные из жизни. Попробуйте лучше консультировать своих клиентов за вознаграждение по поводу подключения этих скриптов, их лучшей интеграции или выполнения более специфических задач.
— SATtva (25/06/2007 21:38)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Тут сейчас ещё spinore, наверное, выскажется о программистах, продающих копии своих программ. Ну, может и есть в этом что-то нелогичное, но ведь всем нам хочется посытнее поесть, сделав ради этого как можно меньше телодвижений. В данном случае я не осуждаю нисколько, а лишь призываю к здравому смыслу. DRM: Mission Impossible.
— spinore (25/06/2007 21:41)   профиль/связь   <#>
комментариев: 1515   документов: 44   редакций: 5786


нет


GPL
— spinore (25/06/2007 21:43)   профиль/связь   <#>
комментариев: 1515   документов: 44   редакций: 5786
Вот чего опять обображение числа комментариев добавили... Из-за попроса?
— SATtva (25/06/2007 21:53)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Из-за попроса?

Из-за него. :-) Перевес всё-таки почти в два раза...
— spinore (26/06/2007 00:00)   профиль/связь   <#>
комментариев: 1515   документов: 44   редакций: 5786
Есть предложение внести в ФАК объяснение почему очередные попытки DRM похожи на попытки изобрести вечный двигатель... ну почти вечный.. И в качестве ответа на все такие топики сразу давать ссылку на ФАК.

P. S.: чур не я... мне пока некогда писать.
— Гость (26/06/2007 01:00)   <#>
Бгы, защитить JS :D
Запретите лучше отправку клиенту HTML. Полезней для общества будет.

Как-то видел виндовый shell-script с лицензией запрещающей его чтение :D

На практике можно попытаться шифровать часть байт-кода JAVA и дальше динамически его разворачивать.

Давно видел статью для защиты исходного кода путём динамического шифрования/дешифрования динамически создаваемых же блоков компилируемого кода. При этом исходники оставались доступны но абсолютно бессмысленны. Автором планировалось защитить исходники от авторских притязаний компании работодателя.
— Alex_B (26/06/2007 13:44)   профиль/связь   <#>
комментариев: 143   документов: 31   редакций: 143
Не ожидал столь резкой реакции..

GPL – если речь идет о лицензии, то в России она не действует вроде.

вот вам выдержка из обсуждения этой лицензии с юр. конференции:
"Для использовании GPL при защите открытого ПО в России необходимо иметь официально заверенный GNU/FSF перевод, адаптированный к Российскому законодательству.
Нотариально заверенные переводы не имеют юридической силы в связи с неадекватностью Российскому законодательству.
На конференции было высказано мнение, что для составления юридически грамотного перевода необходимо попытаться согласовать термины, применяемые в рамках лицензии, с юридическими понятиями, используемыми в области защиты
авторского права в России.
Не исключено что данная задача может оказаться не выполнимой.

Где и с кем можно согласовать термины? Задача достойна для академии наук.
Всегда найдется умник "в штатском", который будет трактовать согласованные термины в нужном ему русле, т.е. круг замкнется. Единственный вариант, который даст частичную гарантию, – это грамотный перевод GPL, который необходимо
возвести в ранг документа имеющего юридическую силу. И к нему приложить дополнение с разъяснениями кажного параграфа GPL (по типу Российских кодексов законов).
Т.е. сделать из GPL руководство по применению в Российских судах.
Путь похож на абсурд, но таковы реалии нашей жизни."

Да и спрашивал я не про лицензии.


Вы говорите про JAVA или JavaScript? А где можно почитать эту статью, или каким образом её можно найти?(может Вы помните фамилию автора, и первое слово в названии)

По всей видимости так и придется делать, но повторюсь – консудльтация может и непригодиться – есть инсталятор.
(http://gmap.maxaman-soft.ru/)
— SATtva (26/06/2007 14:23)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
GPL – если речь идет о лицензии, то в России она не действует вроде.

Есть мнение, что GPL в контексте российского законодательства об авторском праве имеет определённые неоднозначности в плане принудительного отказа лицензиата от ряда имущественных прав на производные работы и т.д. Мне это кажется надуманным. Если автор выпускает работу под лицензией, где явно оговаривает данные ограничения, а пользователь принимает лицензию, то проблем здесь не больше, чем с положением некоторых EULA, где лицензиар имеет право на инспектирование компьютеров лицензиата в любое время на предмет законного использования лицензируемой продукции (бред похлеще).

Вы говорите про JAVA или JavaScript?

То, что применимо к Java, не обязательно применимо к js.
— Observer (26/06/2007 15:28)   профиль/связь   <#>
комментариев: 111   документов: 9   редакций: 22
Ремарка: работы по переводу Creative Commons ведутся здесь: http://www.ccrussia.org/
Вероятно, там же будут предприняты попытки привязать эту работу к законодательной базе РФ.
— Гость (26/06/2007 15:49, исправлен 26/06/2007 18:12)   <#>

эээ... там где написано JAVA, она и имеется ввиду, последний абзац – обобщающий.

Короче, вот Вам статьи общего содержания:
http://www.osp.ru/os/2001/07-08/180304/
http://www.opennet.ru/base/dev/perl_hide_code2.txt.html

Всё это непринуждённо находится через такой вот запрос к многоуважаемому Google:

а по запросу

находится туева хуча ссылок на шарашки по защите быдлокода,
а если спросить

то найдёте ваших убогих братьев по разуму.

PS Гений! Встроил Google Map, гыгыгы.
Вам окызваетсо вообще ничего не нужно скрывать всеръёз.
Делайте так как задумали: с обращением на ваш сервак, Ваш контингент полюбому способен только на копипаст :D
— Alex_B (26/06/2007 19:10, исправлен 26/06/2007 19:39)   профиль/связь   <#>
комментариев: 143   документов: 31   редакций: 143
Гость, я спрашивал по JavaScript. Те статьи что ты дал не по теме.
Вообще ты прав – нужна именно защита от дурака, и от ленивого – ему будет легче отдать мне 800руб. чем ковыряться.
На этом твоя правота заканчивается.
(ссылки не по теме, хамство)

А вообще мне стало интересно – неужели нет вообще никакого способа защиты JavaScript, вот я и задал вопрос здесь.
— Observer (26/06/2007 20:57)   профиль/связь   <#>
комментариев: 111   документов: 9   редакций: 22
Ну почему нет? Есть. Судебная защита.
Странный народ (и я в том числе) – пытаются защитить себя всякими рожнами и совершенно игнорируют специально созданные для этого органы. На кой чёрт мы их тогда кормим? Я понимаю, что этот вопрос – чёрная дыра, но... тем не менее.
Чёрная дыра начинается с постановки терминов по этому вопросу и далее...
(философил)
— SATtva (26/06/2007 21:26, исправлен 26/06/2007 21:27)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
А вообще мне стало интересно – неужели нет вообще никакого способа защиты JavaScript...

Сугубо технического — нет (о правовом Наблюдатель напомнил). JS разрабатывался в качестве простого способа для создания динамических элементов веб-сайтов. Никто тогда не думал, что на нём можно целые комплексные программы писать. Если бы такая цель ставилась, сделали бы возможность и надёжной аутентификации кода, какая существует для java. А то получается, что в отсутствие SSL клиентскую часть AJAX-приложения можно подменить и заставить её "общаться" с сервером злоумышленника, о чём простой пользователь никогда не узнает.
На страницу: 1, 2 След.
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3