Могу ли я зашифровать файл javascript и при этом запустить его на клиенте? - PullRequest
0 голосов
/ 08 декабря 2011

У меня есть клиент, у которого есть документ, полный JavaScript, который они хотели бы зашифровать.Моя идея заключается в том, что я могу создать форму загрузки php для незашифрованного документа, а затем он обрабатывает и возвращает клиенту зашифрованный документ.Можно ли засолить код так, чтобы он все еще работал, но не мог быть отменен?

Ответы [ 3 ]

6 голосов
/ 08 декабря 2011

номер

По сути, если ваш код работает, он интерпретируется браузером (и его можно увидеть ... хотя бы частично).

Лучше всего, чтобы скрыл ваш код .

Кстати, вы можете попробовать то, что сказал Джейк, и просто перенаправить все запросы * .js на страницу php (используя .htaccess), которая: 1. Откройте файл,
2. Читает это в строку,
3. кодирует строку,
4. и затем возвращает это.
Хотя для этого требуется, чтобы у клиента был ключ, которым вы зашифровали строку. И как только кто-то расшифрует этот js (чтобы запустить его), он сможет его украсть ...

3 голосов
/ 08 декабря 2011

Нет, это невозможно: браузер не может запустить зашифрованную чепуху, к которой у него нет ключа расшифровки. Вы должны дать браузеру действительный код, который он понимает - либо отправив незашифрованный код, либо отправив зашифрованный код и код дешифрования и код, чтобы выполнить расшифровку - и вы можете запретить пользователю доступ к коду, который запущен в его браузере.

Однако вы можете запутать код, чтобы сделать его трудным для того, чтобы кто-то мог его прочитать и понять, оставаясь при этом действительным и работоспособным. Есть инструменты, которые будут выполнять такие вещи, как удаление всех комментариев и переименование переменных в бессмысленные имена. Но с достаточным количеством времени и усилий, кто-то еще может понять, что делает код.

0 голосов
/ 08 декабря 2011

Это довольно сумасшедшая идея, но вам может потребоваться, чтобы конечный пользователь ввел в браузере ключ шифрования, используемый для расшифровки кода. Затем вы можете запустить eval () для расшифрованной строки, чтобы загрузить код в память. Я не знаю, если требование конечного пользователя ввести ключ является жизнеспособным в вашем случае, но это так - это должно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...