Защита JavaScrip
В настоящее время все больше и больше Интернет проектов используют Ajax и соответственно и JavaScript. Есть проекты у которых вся логика перенесена на сторону клиента (JS), а серверная часть только записывает данные в базу и читает данные из базы.
По сему возник вопрос по защите именно скрипов на JS. Обфускация не помогает.
Суть даже не столько скрыть крипт, сколько сделать так что бы продукт в целом (JS-скрипт является частью этого продукта) работал только на тех сайтах, которые купили лицензию.
Я очень путано всё излагаю, попытаюсь рассказать на примере:
Я написал продукт для web сайтов. Продукт имеет инсталлятор и прост в обращении. Для его использования не нужно разбираться в программировании и прочих вещах.
Я хотел бы продавать свой продукт, но при такой ситуации продать более чем двум покупателям не удастся.
И вот что пришло мне в голову: грузить часть JS кода с моего сервера.
Т.е. скрипт обращается на мой север – там я смотрю с какого доменного имени пришел запрос (проверяю лицензию) и отдаю или не отдаю необходимый кусок.
Этот необходимый кусок должен быть для каждого доменного имени свой.
Как считаете такая схема жизнеспособна? Какие есть альтернативы?
Спасибо.
комментариев: 1060 документов: 16 редакций: 32
комментариев: 143 документов: 31 редакций: 143
Существует возможность сделать такую проверку автоматической с помощью плагина для браузера?
И тогда, можно ли построить какой-то механизм проверки используется ли легальная копия скрипта JavaScript или нет с помощью плагинов?
(Интересуюсь не в своих меркантильных целях, а из-за желания разобраться)
комментариев: 11558 документов: 1036 редакций: 4118
Чтобы это работало, нужно чтобы где-то хранилась эталонная копия хэша. Можно вшить в сам код такого плагина, но как показывает практика, подобные методы ломаются на раз-два (хотите Вы или нет, а хэшу придётся пройти через ОЗУ... со всеми вытекающими).
Проблема DRM в том, что он в устоявшейся парадигме ПК не может существовать физически. Дело тут не в тех методах, которые Вы изберёте для защиты своих интересов. Это сущностная проблема. (На которую, в случае js, накладываются ещё и практические аспекты реализации.)