@vostotskiy

Как запретить копирование коммерческого ПО (библиотека на PHP)?

Здравствуйте.
Есть небольшая библиотечка, представленная в виде серверного и клиентского скриптов,написанная на PHP +JS, которая используется для построения данных из CSV файла.

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

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

Библиотека не предполагает использование БД, только CSV файлы, которые создаются самим клиентом.
Посоветуйте, пожалуйста, как можно защитить такого рода библиотеку от несанкционированного копирования, чтобы можно было приложить как можно больше усилий для ее взлома(чтобы дешевле было купить, чем взломать или нанять спеца для взлома.).

Спасибо.
  • Вопрос задан
  • 365 просмотров
Пригласить эксперта
Ответы на вопрос 2
t-alexashka
@t-alexashka
Сразу пишу legacy код
Перепишите ее на Зефир ( zephir-lang.com ) будет в качестве php-расширения (so, dll)
только вам нужно будет для каждого покупателя перекомпилировать снова, занося туда какую-то секретную информацию, например server_name, или ip или пароль (ну сами придумайте). тогда будет достаточно проблемно вытащить данные из расширения, поскольку оно уже скомпилированно. В итоге расширение работать не будет, если запущено не для того для кого собиралось.
Ответ написан
Комментировать
riky
@riky
Laravel
если нет инета то привязка может быть только к железу (серийный код материнской платы).

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

сомневаюсь что вы будете заморачиваться с написанием php экстеншена, хотя и он простой по функционалу, нужно разбираться с zend engine api.

также аналогичный, но более простой вариант - написать простую программу на с++ например, можно консольную, которая извлекает этот сериал материнской.
подойдет любой компилируемый язык (C, C++, C#, наверное даже pascal или basic), программа будет простая
https://www.google.ru/webhp?q=get+motherboard+serial (добавьте любой ЯП)

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

ps пока писал, придумал еще вариант - исопльзовать mac адрес сетевухи.
программу на С писать не придется тк можно использовать встроенные консольные команды ОС
нужно парсить вывод
exec('ipconfig /all')
как минимум искать нужный мак адрес.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы