IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Веб-программирование (https://www.imho.ws/forumdisplay.php?f=29)
-   -   Как защитить код Javascript? (https://www.imho.ws/showthread.php?t=102998)

ClawX 27.04.2006 21:48

Как защитить код Javascript?
 
Доброго времени суток.

Проблема в следующем: есть сайт написан на html и javascript. И следовательно пользователь может легко скачать любую страничку и просмотреть ее в оффлайне. Предполагаю, что можно переписать код на PHP, но проблема в хостинге...
Вопрос: Можно ли защитить свой код(javascript) от копирования или как-нибудь сделать невозможным просмотр в оффлайне скаченные страницы?

Kvarx 27.04.2006 23:09

Код PHP выполняется на сервере, а я ява-скрипт в браузере, то есть у клиента. То есть по сути это разные вещи.

Как вариант можно функцию закодировать. Потом будет вызываться другая функция, которая будет раскодировать закодированную и выполнять, что там написано. Правда при сохранения и пользователя все равно будет работать этот код, просто он станет менее понятным.

Можно еще вынести ява-скрипт в отдельный файл и инклудить его в html -файле, причем писать абсолютный путь. А если этот путь переопределить в .htaccess, юзеру придется разбираться какой файл .js, куда инклудиться должен.

Naked 28.04.2006 08:09

Хм, а есть такая программулька Zend Encoder и вообще семейство всяких разных Zend'ов.... Вот она кодирует файл так, что потом уже раскодировать (практически) невозможно, на этом форуме есть тема в варезе про нее - юзай поиск, но думаю в сети ее тоже достаточно много :yees:

ClawX 28.04.2006 08:35

Цитата:

Сообщение от Kvarx
Код PHP выполняется на сервере, а я ява-скрипт в браузере, то есть у клиента. То есть по сути это разные вещи.

Как вариант можно функцию закодировать. Потом будет вызываться другая функция, которая будет раскодировать закодированную и выполнять, что там написано. Правда при сохранения и пользователя все равно будет работать этот код, просто он станет менее понятным.

Значит получается, что ява-скриптовские файлы в любом случае будут скачиваться пользователю на компьютер и он потом в оффлайне сможет использовать любую из страничек.
Но если страничка будет написана на PHP, то пользователь не сможет работать в оффлайне с этой страницей.
(В данном случае код в яве-скрипте - это расчет различными формулами, введенных пользователем данных. Т.е. пользователь заполнил поля, нажал кнопку "расчет" и у него должен появиться результат вычисления. Но главное условие, чтобы он мог делать расчеты только в онлайне и не мог делать вычисления в оффлайне)
Если я правильно понимаю, то для решения этой задачи - надо писать страничку на PHP?

Hubbitus 28.04.2006 09:46

Javascript-код полюбому выполняется на стороне клиента, причем интерпретируется, поэтому чтобы он работал, нужно чтобы он БЫЛ у клиента, таким образом его можно сделать менее понятным для разбора человеком (смотрите обфускация, поищите), но никак нельзя сделать недоступным!

BorLase 28.04.2006 11:24

Цитата:

ClawX:
(В данном случае код в яве-скрипте - это расчет различными формулами, введенных пользователем данных. Т.е. пользователь заполнил поля, нажал кнопку "расчет" и у него должен появиться результат вычисления. Но главное условие, чтобы он мог делать расчеты только в онлайне и не мог делать вычисления в оффлайне)
Если я правильно понимаю, то для решения этой задачи - надо писать страничку на PHP?
ты все правильно понял

В случае РНР - человек вводит у себя исходные данные, они отсылаются на сервер, потом он получает обратно результат. Т.е. вся математика - не на клиенте.

В случае же JS - все три этапа происходят на клиенте; поэтому максимум, что можно сделать - это усложнить человеку жизнь ;) - но полностью запретить копирование/сохранение невозможно.

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

Очень грубо говоря - ты можешь окружить портрет Моны Лизы мыслимыми и немыслимыми системами защиты, но ты никак не властен над тем, что человек сделает фотографию картины и потом ее порежет. :)

ClawX 28.04.2006 20:14

Теперь мне все ясно, буду переписывать на PHP.
Всем огромное спасибо за помощь!
Отдельное спасибо BorLase за такой подробный ответ :)

shurik90 05.05.2006 18:12

Не забывай что переделать на PHP тебе придётся всё. То есть ты не сможешь переделать на PHP часть странички, а потом выводить туда свой java script? т.к. он всё равно будет виден юзеру. То есть все формулы тебе надо будет переделать на PHP.

BorLase 06.05.2006 11:10

shurik90, не пугай человека :) работы там - с гулькин нос

ClawX 06.05.2006 21:54

Спасибо всем за помощь, уже все сделал. И в самом деле работы было "с гулькин нос" :)


Часовой пояс GMT +4, время: 11:30.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.