Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Для профи > Варианты защиты кода


Автор: Oflashp 3.8.2007, 15:53
Собственно разрабатываю приложение, задумался над вопросом распространения кода. Но при этом нужно, чтоб код был читабелен, точнее в первоначальном виде, как оно изначально записывалось. Это для того, чтобы сторонние люди, которые купили софт могли добавлять свои библиотеки на свой вкус и т.д.
Нашёл для себя выход вот такой:
Есть файл, назовём pack.php который содержит в себе функции подключения к серверу x.x.x.x
Этому файлу передаётся ключ(аля сериал намбер). С помощью функций сокет pack.php делает запрос на сервер x.x.x.x и передаёт ключ и нужный pack. Сервер проверяет запрос и возвращает пак ввиде целостного файла/файлов которые кладуться в переменную, далее дешифруются ключем(естественно шифрование своё написать, просто тупой обход файла и замена символов согласно ключу)...запускается eval(). А в скрипте соотвественно создание таблиц в базе, создание файлов с содержанием и папок. Или редактирование.
Конечно защита на дурака, любой доработает сам файл pack.php и заставит его вывести скрипт на экран или в один из файлов. Или один раз запустит и создаст свой установочный вариант.
Но если количество обновлений ПО будет достаточное, то такая защита будет очередным гемором. А если ещё дописывать в полученные паки комментарии рандомазные, где будет номерок лиц. ключа прописан + всё в одну строку, то я думаю добавит гемора ещё больше. Да и паки вскрытые если не убрать коменты в интернете находятся, а далее у человека блокируется лиц. ключ.
Собственно задам логичный вопрос. Точнее два вопроса:
1)Как оно со стороны(ясно, что идея не претендует на новую концепцию или вообще новую)
2)Есть ли ещё варианты защиты, с учётом удалённого сервера.

Автор: Anarki 5.8.2007, 17:09
Подобная тема http://forum.vingrad.ru/topic-166177.html
А вообще просто один файл который подключает все остальные попробовать зашифровать зендом и всё. Покупатели скрипта будут иметь возможность редактиировать остальные файлы.

Автор: Oflashp 6.8.2007, 13:10
Не кто не требует и не просит протестировать.
Тут чисто вопрос из серии: Кто знает, что меньше жрёт памяти ООП или ОПО

Автор: Fally 7.8.2007, 14:34
Oflashp, Изобретение велосипеда, ИМХО... 
Кому нужен твой код? В интернете лежат тысячи различных приложений с открытым кодом.. вопрос.. почему ты решил, что предпочтут именно твоё, платно? А не воспользуются каким-либо более лучшим бесплатным аналогом. *(в 99,9% случаев это действительно так)
 smile Купи готовый продукт от Zend (название не помню), по пользуйся им и пойми, что в пустую потратил кучу денег)

Автор: Oflashp 13.8.2007, 21:09
Цитата(Fally @ 7.8.2007,  14:34)
Oflashp, Изобретение велосипеда, ИМХО... 
Кому нужен твой код? В интернете лежат тысячи различных приложений с открытым кодом.. вопрос.. почему ты решил, что предпочтут именно твоё, платно? А не воспользуются каким-либо более лучшим бесплатным аналогом. *(в 99,9% случаев это действительно так)
 smile Купи готовый продукт от Zend (название не помню), по пользуйся им и пойми, что в пустую потратил кучу денег)

Вы о чём?

Автор: CyClon 15.8.2007, 22:11
Цитата
2)Есть ли ещё варианты защиты, с учётом удалённого сервера.


Даже если зазендить... ИМХО один вариант есть. Когда машина коннектится к серверу, перенаправлять ее на локальный сервер, который будет выдавать тоже самое что оригинальный сервер.

Автор: dorber 22.8.2007, 18:26
Цитата

Даже если зазендить...


Все гораздо хуже... Можно, например, много узнать даже если файл обработан Zend SafeGuard'ом - проинклюдить его и сделать var_dump($GLOBALS), получив таким образом все переменные.

Цитата

Когда машина коннектится к серверу, перенаправлять ее на локальный сервер, который будет выдавать тоже самое что оригинальный сервер.


В таком случае локальный сервер должен отвечать так же как и удаленный... Это проблематично. Если бы я делал защиту, то и ответы сервера у меня различались бы при каждом запросе.

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

Именно поэтому в сети масса так называемых "нулённых" скриптов, из которых подобную "функциональность" удалили....

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)