На самом деле я разрабатываю расширение Chrome и плагин jQuery для его загрузки и продажи на Codecanyon. Когда я «Проверяю источник» на странице, и я нажимаю на вкладку «Ресурсы», файл javascript выглядит пустым. Как Codecanyon это делает? Я также хочу иметь защиту от кражи файлов на своем собственном веб-сайте, но я не знаю, как это сделать. Я знаю php и javascript, и нет никакого способа сделать это, потому что браузер загружает файл для его выполнения.
Здесь вы можете увидеть пример.
Вы можете только попытаться сделать его менее читаемым (посредством минификсации и обфускации), но код по-прежнему транслируется, и его можно настроить с обратной обработкой.
Фактический код в вашем примере загружается с помощью файла jquery.js.
Вы не можете скрыть его, потому что ваш браузер нуждается в его выполнении. Просто как тот.
Вы должны понимать, что это скрипт, выполняемый на стороне клиента. Он не компилируется (это означает, что он не является двоичным (0 и 1 машинный язык)). Так что это свободно читаемый.
Тем не менее вы можете запутать его с помощью таких инструментов, как компрессор YUI
В основном такие инструменты удаляют дополнительный интервал, возвращают строки табуляции и переименовывают методы (например, метод «a» для «MyShinyMethodWhoMakesNiceStuff») и переменные. Это очень затрудняет чтение и понимание кода. Таким образом, сложнее добиться обратной инженерии.
Некоторые используют некоторые трюки, такие как base64 или другие, кодируют и декодируют часть кода с функцией, но это всего лишь трюки и не обманут острый глаз.
Благодаря запутыванию вы заставляете людей тратить гораздо больше времени на анализ вашего кода, и воровство, таким образом, намного сложнее и требует времени. Предположим, вы создали приятный плагин javascript, который делает каждый белый фон фиолетовым (хорошо, не очень хороший пример, но использовал его только для получения изображения). Кто-то может захотеть украсть его и сделать его синим вместо фиолетового. Если код запутан, он может подумать, что вам проще скопировать вашу идею и переписать ее самостоятельно со своим кодом и синим фоном, это займет у него меньше времени, чем обратные инженеры и понимание ваших колодцев, которые легче поддерживать в то же время. В конце концов он «только» «украдет» вашу идею, но не ваш код.
Я думаю, что в конце концов, это всего лишь вопрос времени.
Если вы видите, что он пуст, значит, он пуст. Невозможно скрыть свой код javascript от клиента, который должен выполнить код.
На JavaScript «защита» – в основном то, что говорили все остальные.
Объясняя приведенный вами пример :
Действительно, http://demos.pixelworkshop.fr/circular_countdown_cc/js/countdown.min.js представляется пустым, однако фактический код плагина добавляется в файл jquery.js, начиная со строки 58:
http://demos.pixelworkshop.fr/circular_countdown_cc/js/jquery.js
Вы можете использовать эти инструменты обфускатора javascript:
http://www.javascriptobfuscator.com
http://www.daftlogic.com/projects-online-javascript-obfuscator.htm
Liblock – это небольшой инструмент, созданный мной. Он шифрует ваши JS-источники – это не простая безвестность путем обфускации, но хорошая безопасность с помощью шифрования.
Когда вы проверяете DOM в своем клиенте, все, что вы увидите, это: nplreq (url) для каждого скрипта, который вы связываете с HTML-заголовком.
Посмотрите, как это работает здесь liblock-demo – это демонстрация только для скрытия скриптов в «nopro_lib» и «xscroll.js».
Шифрование и дешифрование полностью прозрачны для браузера. Он протестирован с Firefox, Chrome, Opera, Konqueror, IE8-10 на ПК, а также с Dolphin и Safari на планшете Android.
Источники надежно скрыты, и только с действительно большими усилиями они могут быть снова открыты. Шифрование выполняется с помощью AES (Rijndael 256) с использованием одноразовых ключей, которые согласовываются между клиентом и (liblock-) сервером с использованием Diffie-Hellman.