Intereting Posts
DOMDocument: игнорировать повторяющиеся идентификаторы элементов Печать PHP, выполняющего стек вызовов из-за пределов PHP Сценарий GoogleCloudMessaging PHP всегда возвращает неверную регистрацию Как включить PostgreSQL в XAMPP на Linux как изменить размер изображения с URL-адреса и уменьшить размер изображения загрузка изображения с помощью ajax и php PHP – самый быстрый способ преобразования массива 2d в 3d-массив, который сгруппирован по определенному значению проблема со вставкой в ​​код базы данных? Как заставить браузер показывать последние изменения в файле CSS? Как использовать .htaccess для переписывания запросов с изображения на PHP-скрипт? Подсчет итогов в день с моим результатом в SQL Сравнение строки UTF-8 Установить валюту магазина на основе страны-клиента Обнаруживать, когда скрипт задерживается и позволяет ему пропустить или продолжить в PHP Обходное решение для выполнения «INSERT … ON DUPLICATE KEY UPDATE» с нулевым значением для уникального ключа

Как предотвратить кражу кода javascript?

На самом деле я разрабатываю расширение 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.