vAlex_ Опубликовано 16 Октября 2006 Жалоба Поделиться Опубликовано 16 Октября 2006 Погуглив некоторое время, пришел к выводу, что нормальной защиты php-скриптов от нелегального распространения нет. Все сводятся или к PHP->bytecode (zend, ioncube), или к заморачиванию с кучей вложенных eval'ов. Оба варианта при желании ломаются. Собственно, вопрос: делал ли кто-нибудь что-либо подобное для своих проектов, и возможно ли это в принципе? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
xRay Опубликовано 16 Октября 2006 Жалоба Поделиться Опубликовано 16 Октября 2006 ответ НЕТвсе что кем-то созданокто-то другой мжет обойтин.р. пропатчив сам двиг PHP Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Firewalll Опубликовано 16 Октября 2006 Жалоба Поделиться Опубликовано 16 Октября 2006 Собственно PHP никогда и не отличался надежностью и безопасностью. Статей по увеличению безопасности для PHP больше чем советов по удобствам. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
vAlex_ Опубликовано 17 Октября 2006 Автор Жалоба Поделиться Опубликовано 17 Октября 2006 ответ НЕТвсе что кем-то созданокто-то другой мжет обойтин.р. пропатчив сам двиг PHP Это понятно. Но у ломающего встанет вопрос целесообразности. Т.е. н-р ломание скрипта дороже, чем его купить. В этом деле может помочь, имхо, obfuscation, т.е. превращение всех осмысленных имен переменных, функций, классов, etc в бессмысленный набор символов. Интерпретатору php пофиг, а разбираться в коде станет трудней. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Destruction Опубликовано 17 Октября 2006 Жалоба Поделиться Опубликовано 17 Октября 2006 google > deZender. Сколько скриптов не видел - отлично справляется с задачей (в т.ч. и востановление название переменных, функций, классов, может быть это из-за такого зенда, но я тестировал на IPB 2.0, взятого с офсайта). Да и ковыряться в скрипте тоже не особо требуется - удалил стучалки и пользуешся. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
vAlex_ Опубликовано 17 Октября 2006 Автор Жалоба Поделиться Опубликовано 17 Октября 2006 я не это имел ввиду.. Вот есть, например, функция <?php function myFunction ($arg) { .... } ?> а вместо этого получаем <?php function b7aa2b9fe37943fbae4c3f6062df068 ($dd86c2dc75c3f569ec619bd283a33f) { .... } ?> И во всех случаях заменяем myFunction на b7aa2b9fe37943fbae4c3f6062df068. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Destruction Опубликовано 17 Октября 2006 Жалоба Поделиться Опубликовано 17 Октября 2006 (изменено) А толку от этого? Берём две руки, и делаем обратную замену, myFunction правда придёться самим придумать, но это не суть проблемно. Тот кто нулит, тот занулит и выложит. И опять-таки, повторяю, в 90% случаев, необходимо только вырезать из скрипта стучалки, что совсем не проблемно, как не меняй. Изменено 17 Октября 2006 пользователем Destruction Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
vAlex_ Опубликовано 17 Октября 2006 Автор Жалоба Поделиться Опубликовано 17 Октября 2006 (изменено) А если небольшой кусок скрипта не давать, а держать на собственном серваке (т.е. к нему будет приходить запрос, а он будет отправлять ответ)? Тогда нуллерам придется его эмулировать. Изменено 17 Октября 2006 пользователем vAlex_ Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
xRay Опубликовано 17 Октября 2006 Жалоба Поделиться Опубликовано 17 Октября 2006 Хе-хе наивный тыты снача сделай чтоыб защита твоя ен глякала и чтобы скрпит был востербаваным ))а тогда уж и нулеры на тебя найдутся и хакерыЕсли такая защита типа ен пробиваемая то просто хост рутят и получает все в лучшем виде Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
vAlex_ Опубликовано 17 Октября 2006 Автор Жалоба Поделиться Опубликовано 17 Октября 2006 Почему же наивный? Просто паранойя.С востребованностью скрипта проблем нет. Поэтому и думаю о защите.Последний вариант, конечно, забывать нельзя (это из серии "проще стену сломать, чем замок в двери"), но тут-то и встает вопрос оправданности (стоимости) взламывания и её соотношение со стоимостью лицензии. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
xRay Опубликовано 17 Октября 2006 Жалоба Поделиться Опубликовано 17 Октября 2006 И чего же у тебя за скрипт такой востребаваный? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
GiV Опубликовано 17 Октября 2006 Жалоба Поделиться Опубликовано 17 Октября 2006 А если небольшой кусок скрипта не давать, а держать на собственном серваке (т.е. к нему будет приходить запрос, а он будет отправлять ответ)? Тогда нуллерам придется его эмулировать.Нуллеры существа примитивные, часть из них имеют скудные познания в области PHP, Perl, ASP и др. языков. Есть конечно и реальные программисты, но им быстро надоедает процесс поиска, потому что не развивает он никак. Главный навык нуллера - внимательность, а так же просто тупой опыт. Большинство стучалок, проверок основаны на одном и том же, следовательно и находятся они совершенно идентичным образом. Далее по поводу кода на сервере, мысль красивая, но, извиняюсь геморойная. Почему? 1. Поддержка стабильной работы сервера. (Упал сервер - имеем кучу "радосных" клиентов)2. Распределение нагрузки (ладно 20-ть копий работают одновременно, а 500, а 1000?)3. Кусок кода который будет выделен, должен иметь уникальную бизнес-логику (получение на вход двух параметров, их сложение и выдача результата, явно легко отслеживается =) ) Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 18 Октября 2006 Жалоба Поделиться Опубликовано 18 Октября 2006 Да тупость это - защита.Я пришёл к выводу, что продавать скрипт надо тем людям, которым просто-напросто будет в ломы его кому-то давать, делиться, перепродавать, копировать и пр.Им просто это некогда делать и не интересно. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
vAlex_ Опубликовано 18 Октября 2006 Автор Жалоба Поделиться Опубликовано 18 Октября 2006 Да тупость это - защита.Я пришёл к выводу, что продавать скрипт надо тем людям, которым просто-напросто будет в ломы его кому-то давать, делиться, перепродавать, копировать и пр.Им просто это некогда делать и не интересно. А где таких найти? Скопировать проблем нет. К тому же необязательно перепродавать, можно просто купить вскладчину, а потом раскопировать. А это убыток. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
GiV Опубликовано 18 Октября 2006 Жалоба Поделиться Опубликовано 18 Октября 2006 Лучше потратить деньги на отлов распространителей варезных вресии, скажете что это не возможно? Возможно =) если лежит в публичном доступе на каком-то сервере, закрыть аккаунт владельца сайта (сервера) можно в 90% случаев. Так же занятся отстреливанием нелегально используемых копий в интернете, как показывает наша практика - пользователи, если их ловят, добровольно удаляют или покупают ПП (есть конечно и 0,3% которых приходится закрывать через хостера, последний обычно саспендит аккаунт за 10-20 минут после жалобы) Воровства полностью избежать не удасться. Закодировать скрипт -- усложнить жизнь пользователям, читай потерять какой то процент покупателей. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
vAlex_ Опубликовано 18 Октября 2006 Автор Жалоба Поделиться Опубликовано 18 Октября 2006 (изменено) Возможно =) если лежит в публичном доступе на каком-то сервере, закрыть аккаунт владельца сайта (сервера) можно в 90% случаев. Простой пример: Запрос в гугл "Invision Power Board 2.1.7" - на первых трех страницах нет ссылки на сайт IPS. При этом виден подход варезных сайтов - у себя выкладывают ссылку на файлообменники. И вроде бы они не причем, и файлообменники тоже (т.к. архивы обычно паролят). Изменено 18 Октября 2006 пользователем vAlex_ Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
GiV Опубликовано 18 Октября 2006 Жалоба Поделиться Опубликовано 18 Октября 2006 У Вас типичный запрос пользователя ищущего варез =) Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
vAlex_ Опубликовано 18 Октября 2006 Автор Жалоба Поделиться Опубликовано 18 Октября 2006 Дело-то не в этом..Неужели все то громадное кол-во вареза - это те самые 10%, которые нельзя закрыть? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
GiV Опубликовано 19 Октября 2006 Жалоба Поделиться Опубликовано 19 Октября 2006 Можно, но пока у нас нет средств на это. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
vAlex_ Опубликовано 24 Января 2007 Автор Жалоба Поделиться Опубликовано 24 Января 2007 (изменено) Я долго думал над этой проблемой... Вот результат: 1. Никаких проверок в дистрибутиве быть не может, т.к. в любом случае её можно вырезать.2. Кодировать исходник тоже бесполезно. Вывод: нужно проверку производить на своем хосте. Для выполнения1. Поддержка стабильной работы сервера. (Упал сервер - имеем кучу "радосных" клиентов)2. Распределение нагрузки (ладно 20-ть копий работают одновременно, а 500, а 1000?)3. Кусок кода который будет выделен, должен иметь уникальную бизнес-логику (получение на вход двух параметров, их сложение и выдача результата, явно легко отслеживается =) ) требуется лишь поместить эту проверку в код, который обязателен, но не выполняется при каждом обращении к скрипту (например это может быть инсталлятор, апгрейдор плохой пример, т.к. он не содержит уникальной бизнес-логики).Повторюсь, что никаких проверок в коде, который имеет клиент, быть не должно. Никакой PHP-код он не должен загружать, т.к. никто не мешает его получить 1 раз и поставить вместо запроса. Передаваться должны только данные, т.е. ввод пользователя уходит на сервер разработчика, обрабатывается и его результат выдается инсталлятору. (Т.о. инсталлятор - это всего лишь подобие терминала). Передачу данных неплохо бы в целях безопасности данных клиента ассиметрично зашифровать (типа PGP).На сервере разработчика проверяется источник запроса (легитимен ли он). Единственная проблема, которую я сечас вижу, это возможность на легальном хосте поставить скрипт, а потом скопировать пустую чистую систему на другой хост (вместе с базой) и поправить пути к файлам. Изменено 24 Января 2007 пользователем vAlex_ Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 24 Января 2007 Жалоба Поделиться Опубликовано 24 Января 2007 требуется лишь поместить эту проверку в код, который обязателен, но не выполняется при каждом обращении к скрипту (например это может быть инсталлятор, апгрейдор).Ну а что мешает его оттуда вырезать? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
vAlex_ Опубликовано 24 Января 2007 Автор Жалоба Поделиться Опубликовано 24 Января 2007 Вырезать код из скрипта, находящегося на сервере разработчика? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
vAlex_ Опубликовано 24 Января 2007 Автор Жалоба Поделиться Опубликовано 24 Января 2007 С инсталлятором плохой пример, т.к он не содержит "уникальной бизнес-логики". Думаю дальше... Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 24 Января 2007 Жалоба Поделиться Опубликовано 24 Января 2007 2vAlex_ Вырезать обращение к этому серверу. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
vAlex_ Опубликовано 24 Января 2007 Автор Жалоба Поделиться Опубликовано 24 Января 2007 (изменено) Смысл в том, чтобы часть реального кода программы находилась на сервере разработчика и работала как черный ящик. Т.е. что-то получает на вход и что-то возвращает жизненно важное для работы скрипта. Тогда, чтобы сломать, придется самому изобретать этот кусок кода. А, как сказал Giv, Нуллеры существа примитивные. Изменено 24 Января 2007 пользователем vAlex_ Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.