Перейти к контенту

Реальная защита php-скрипта от "пиратства"


Рекомендуемые сообщения

Погуглив некоторое время, пришел к выводу, что нормальной защиты php-скриптов от нелегального распространения нет. Все сводятся или к PHP->bytecode (zend, ioncube), или к заморачиванию с кучей вложенных eval'ов. Оба варианта при желании ломаются.

 

Собственно, вопрос: делал ли кто-нибудь что-либо подобное для своих проектов, и возможно ли это в принципе?

Ссылка на комментарий
Поделиться на других сайтах

Собственно PHP никогда и не отличался надежностью и безопасностью. Статей по увеличению безопасности для PHP больше чем советов по удобствам. :D
Ссылка на комментарий
Поделиться на других сайтах

ответ НЕТ

все что кем-то создано

кто-то другой мжет обойти

н.р. пропатчив сам двиг PHP

 

Это понятно. Но у ломающего встанет вопрос целесообразности. Т.е. н-р ломание скрипта дороже, чем его купить. В этом деле может помочь, имхо, obfuscation, т.е. превращение всех осмысленных имен переменных, функций, классов, etc в бессмысленный набор символов. Интерпретатору php пофиг, а разбираться в коде станет трудней.

Ссылка на комментарий
Поделиться на других сайтах

google > deZender.

 

Сколько скриптов не видел - отлично справляется с задачей (в т.ч. и востановление название переменных, функций, классов, может быть это из-за такого зенда, но я тестировал на IPB 2.0, взятого с офсайта).

 

Да и ковыряться в скрипте тоже не особо требуется - удалил стучалки и пользуешся.

Ссылка на комментарий
Поделиться на других сайтах

я не это имел ввиду..

 

Вот есть, например, функция

 

<?php 
function myFunction ($arg) {
....
}
?>

 

а вместо этого получаем

 

<?php 
function b7aa2b9fe37943fbae4c3f6062df068 ($dd86c2dc75c3f569ec619bd283a33f) {
....
}
?>

 

И во всех случаях заменяем myFunction на b7aa2b9fe37943fbae4c3f6062df068.

Ссылка на комментарий
Поделиться на других сайтах

А толку от этого?

 

Берём две руки, и делаем обратную замену, myFunction правда придёться самим придумать, но это не суть проблемно.

 

Тот кто нулит, тот занулит и выложит.

 

И опять-таки, повторяю, в 90% случаев, необходимо только вырезать из скрипта стучалки, что совсем не проблемно, как не меняй.

Изменено пользователем Destruction
Ссылка на комментарий
Поделиться на других сайтах

А если небольшой кусок скрипта не давать, а держать на собственном серваке (т.е. к нему будет приходить запрос, а он будет отправлять ответ)? Тогда нуллерам придется его эмулировать. Изменено пользователем vAlex_
Ссылка на комментарий
Поделиться на других сайтах

Хе-хе наивный ты

ты снача сделай чтоыб защита твоя ен глякала и чтобы скрпит был востербаваным ))

а тогда уж и нулеры на тебя найдутся и хакеры

Если такая защита типа ен пробиваемая то просто хост рутят и получает все в лучшем виде

Ссылка на комментарий
Поделиться на других сайтах

Почему же наивный? Просто паранойя.

С востребованностью скрипта проблем нет. Поэтому и думаю о защите.

Последний вариант, конечно, забывать нельзя (это из серии "проще стену сломать, чем замок в двери"), но тут-то и встает вопрос оправданности (стоимости) взламывания и её соотношение со стоимостью лицензии.

Ссылка на комментарий
Поделиться на других сайтах

А если небольшой кусок скрипта не давать, а держать на собственном серваке (т.е. к нему будет приходить запрос, а он будет отправлять ответ)? Тогда нуллерам придется его эмулировать.

Нуллеры существа примитивные, часть из них имеют скудные познания в области PHP, Perl, ASP и др. языков. Есть конечно и реальные программисты, но им быстро надоедает процесс поиска, потому что не развивает он никак.

 

Главный навык нуллера - внимательность, а так же просто тупой опыт. Большинство стучалок, проверок основаны на одном и том же, следовательно и находятся они совершенно идентичным образом.

 

Далее по поводу кода на сервере, мысль красивая, но, извиняюсь геморойная. Почему?

 

1. Поддержка стабильной работы сервера. (Упал сервер - имеем кучу "радосных" клиентов)

2. Распределение нагрузки (ладно 20-ть копий работают одновременно, а 500, а 1000?)

3. Кусок кода который будет выделен, должен иметь уникальную бизнес-логику (получение на вход двух параметров, их сложение и выдача результата, явно легко отслеживается =) )

Ссылка на комментарий
Поделиться на других сайтах

Да тупость это - защита.

Я пришёл к выводу, что продавать скрипт надо тем людям, которым просто-напросто будет в ломы его кому-то давать, делиться, перепродавать, копировать и пр.

Им просто это некогда делать и не интересно.

Ссылка на комментарий
Поделиться на других сайтах

Да тупость это - защита.

Я пришёл к выводу, что продавать скрипт надо тем людям, которым просто-напросто будет в ломы его кому-то давать, делиться, перепродавать, копировать и пр.

Им просто это некогда делать и не интересно.

 

А где таких найти? Скопировать проблем нет. К тому же необязательно перепродавать, можно просто купить вскладчину, а потом раскопировать. А это убыток.

Ссылка на комментарий
Поделиться на других сайтах

Лучше потратить деньги на отлов распространителей варезных вресии, скажете что это не возможно?

 

Возможно =) если лежит в публичном доступе на каком-то сервере, закрыть аккаунт владельца сайта (сервера) можно в 90% случаев.

 

Так же занятся отстреливанием нелегально используемых копий в интернете, как показывает наша практика - пользователи, если их ловят, добровольно удаляют или покупают ПП (есть конечно и 0,3% которых приходится закрывать через хостера, последний обычно саспендит аккаунт за 10-20 минут после жалобы)

 

Воровства полностью избежать не удасться. Закодировать скрипт -- усложнить жизнь пользователям, читай потерять какой то процент покупателей.

Ссылка на комментарий
Поделиться на других сайтах

Возможно =) если лежит в публичном доступе на каком-то сервере, закрыть аккаунт владельца сайта (сервера) можно в 90% случаев.

 

Простой пример: Запрос в гугл "Invision Power Board 2.1.7" - на первых трех страницах нет ссылки на сайт IPS.

 

При этом виден подход варезных сайтов - у себя выкладывают ссылку на файлообменники. И вроде бы они не причем, и файлообменники тоже (т.к. архивы обычно паролят).

Изменено пользователем vAlex_
Ссылка на комментарий
Поделиться на других сайтах

  • 3 месяца спустя...

Я долго думал над этой проблемой... Вот результат:

 

1. Никаких проверок в дистрибутиве быть не может, т.к. в любом случае её можно вырезать.

2. Кодировать исходник тоже бесполезно.

 

Вывод: нужно проверку производить на своем хосте.

 

Для выполнения

1. Поддержка стабильной работы сервера. (Упал сервер - имеем кучу "радосных" клиентов)

2. Распределение нагрузки (ладно 20-ть копий работают одновременно, а 500, а 1000?)

3. Кусок кода который будет выделен, должен иметь уникальную бизнес-логику (получение на вход двух параметров, их сложение и выдача результата, явно легко отслеживается =) )

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

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

На сервере разработчика проверяется источник запроса (легитимен ли он).

 

Единственная проблема, которую я сечас вижу, это возможность на легальном хосте поставить скрипт, а потом скопировать пустую чистую систему на другой хост (вместе с базой) и поправить пути к файлам.

Изменено пользователем vAlex_
Ссылка на комментарий
Поделиться на других сайтах

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

Ну а что мешает его оттуда вырезать?

Ссылка на комментарий
Поделиться на других сайтах

Смысл в том, чтобы часть реального кода программы находилась на сервере разработчика и работала как черный ящик. Т.е. что-то получает на вход и что-то возвращает жизненно важное для работы скрипта. Тогда, чтобы сломать, придется самому изобретать этот кусок кода. А, как сказал Giv,
Нуллеры существа примитивные
. Изменено пользователем vAlex_
Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.