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

Реальная защита 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_
Ссылка на комментарий
Поделиться на других сайтах

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

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

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

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

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

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

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

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

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