Защита JavaScrip
В настоящее время все больше и больше Интернет проектов используют Ajax и соответственно и JavaScript. Есть проекты у которых вся логика перенесена на сторону клиента (JS), а серверная часть только записывает данные в базу и читает данные из базы.
По сему возник вопрос по защите именно скрипов на JS. Обфускация не помогает.
Суть даже не столько скрыть крипт, сколько сделать так что бы продукт в целом (JS-скрипт является частью этого продукта) работал только на тех сайтах, которые купили лицензию.
Я очень путано всё излагаю, попытаюсь рассказать на примере:
Я написал продукт для web сайтов. Продукт имеет инсталлятор и прост в обращении. Для его использования не нужно разбираться в программировании и прочих вещах.
Я хотел бы продавать свой продукт, но при такой ситуации продать более чем двум покупателям не удастся.
И вот что пришло мне в голову: грузить часть JS кода с моего сервера.
Т.е. скрипт обращается на мой север – там я смотрю с какого доменного имени пришел запрос (проверяю лицензию) и отдаю или не отдаю необходимый кусок.
Этот необходимый кусок должен быть для каждого доменного имени свой.
Как считаете такая схема жизнеспособна? Какие есть альтернативы?
Спасибо.
комментариев: 1060 документов: 16 редакций: 32
комментариев: 11558 документов: 1036 редакций: 4118
И что с того? Будет по миру гулять множество вариантов одного и того же [Вашего] кода. Вам от этого станет легче?
Суть в том, что код js интерпретируется в браузере, получающем копию кода, и не имеет значения, откуда он её получил: с сервера веб-сайта, с Вашего сервера или через божественное откровение. А если в браузере есть копия кода, то Вы уже не являетесь единственным его (кода) обладателем. Дальше пользователь может, например, из кэша этот код выковырять. Или, что ещё действенней (и тут никакие Ваши трюки с ограничением кэширования не помогут), — просто срезать сниффером прямо с входящего канала.
Соглашусь с sentaus'ом, Вы перед собой ставите недостижимую цель. DRM — вообще затея идиотская, а пытаться реализовать его для js — это недели и месяцы, впустую выброшенные из жизни. Попробуйте лучше консультировать своих клиентов за вознаграждение по поводу подключения этих скриптов, их лучшей интеграции или выполнения более специфических задач.
комментариев: 11558 документов: 1036 редакций: 4118
комментариев: 1515 документов: 44 редакций: 5786
нет
GPL
комментариев: 1515 документов: 44 редакций: 5786
комментариев: 11558 документов: 1036 редакций: 4118
Из-за него. :-) Перевес всё-таки почти в два раза...
комментариев: 1515 документов: 44 редакций: 5786
P. S.: чур не я... мне пока некогда писать.
Запретите лучше отправку клиенту HTML. Полезней для общества будет.
Как-то видел виндовый shell-script с лицензией запрещающей его чтение :D
На практике можно попытаться шифровать часть байт-кода JAVA и дальше динамически его разворачивать.
Давно видел статью для защиты исходного кода путём динамического шифрования/дешифрования динамически создаваемых же блоков компилируемого кода. При этом исходники оставались доступны но абсолютно бессмысленны. Автором планировалось защитить исходники от авторских притязаний компании работодателя.
комментариев: 143 документов: 31 редакций: 143
GPL – если речь идет о лицензии, то в России она не действует вроде.
вот вам выдержка из обсуждения этой лицензии с юр. конференции:
"Для использовании GPL при защите открытого ПО в России необходимо иметь официально заверенный GNU/FSF перевод, адаптированный к Российскому законодательству.
Нотариально заверенные переводы не имеют юридической силы в связи с неадекватностью Российскому законодательству.
На конференции было высказано мнение, что для составления юридически грамотного перевода необходимо попытаться согласовать термины, применяемые в рамках лицензии, с юридическими понятиями, используемыми в области защиты
авторского права в России.
Не исключено что данная задача может оказаться не выполнимой.
Где и с кем можно согласовать термины? Задача достойна для академии наук.
Всегда найдется умник "в штатском", который будет трактовать согласованные термины в нужном ему русле, т.е. круг замкнется. Единственный вариант, который даст частичную гарантию, – это грамотный перевод GPL, который необходимо
возвести в ранг документа имеющего юридическую силу. И к нему приложить дополнение с разъяснениями кажного параграфа GPL (по типу Российских кодексов законов).
Т.е. сделать из GPL руководство по применению в Российских судах.
Путь похож на абсурд, но таковы реалии нашей жизни."
Да и спрашивал я не про лицензии.
Вы говорите про JAVA или JavaScript? А где можно почитать эту статью, или каким образом её можно найти?(может Вы помните фамилию автора, и первое слово в названии)
По всей видимости так и придется делать, но повторюсь – консудльтация может и непригодиться – есть инсталятор.
(http://gmap.maxaman-soft.ru/)
комментариев: 11558 документов: 1036 редакций: 4118
Есть мнение, что GPL в контексте российского законодательства об авторском праве имеет определённые неоднозначности в плане принудительного отказа лицензиата от ряда имущественных прав на производные работы и т.д. Мне это кажется надуманным. Если автор выпускает работу под лицензией, где явно оговаривает данные ограничения, а пользователь принимает лицензию, то проблем здесь не больше, чем с положением некоторых EULA, где лицензиар имеет право на инспектирование компьютеров лицензиата в любое время на предмет законного использования лицензируемой продукции (бред похлеще).
То, что применимо к Java, не обязательно применимо к js.
комментариев: 111 документов: 9 редакций: 22
Вероятно, там же будут предприняты попытки привязать эту работу к законодательной базе РФ.
эээ... там где написано 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
комментариев: 143 документов: 31 редакций: 143
Вообще ты прав – нужна именно защита от дурака, и от ленивого – ему будет легче отдать мне 800руб. чем ковыряться.
На этом твоя правота заканчивается.
(ссылки не по теме, хамство)
А вообще мне стало интересно – неужели нет вообще никакого способа защиты JavaScript, вот я и задал вопрос здесь.
комментариев: 111 документов: 9 редакций: 22
Странный народ (и я в том числе) – пытаются защитить себя всякими рожнами и совершенно игнорируют специально созданные для этого органы. На кой чёрт мы их тогда кормим? Я понимаю, что этот вопрос – чёрная дыра, но... тем не менее.
Чёрная дыра начинается с постановки терминов по этому вопросу и далее...
(философил)
комментариев: 11558 документов: 1036 редакций: 4118
Сугубо технического — нет (о правовом Наблюдатель напомнил). JS разрабатывался в качестве простого способа для создания динамических элементов веб-сайтов. Никто тогда не думал, что на нём можно целые комплексные программы писать. Если бы такая цель ставилась, сделали бы возможность и надёжной аутентификации кода, какая существует для java. А то получается, что в отсутствие SSL клиентскую часть AJAX-приложения можно подменить и заставить её "общаться" с сервером злоумышленника, о чём простой пользователь никогда не узнает.