Защита кода

Добрый вечер!

Хочу к своей коммерческой разработке прикрутить небольшую штуку, чтобы можно было защитить код от воровства.

Хочу где-то в индексе или yii.php соединятся с БД основного сервера и запрашивать лицензионный ключ. Как можно установить соединение с БД в таком файле? Посоветуйте, какой лучше для этого использовать файл, который блокировал бы работу всего сайта при выполнении определенного условия?

Вроде получилось, проверку устроил в конструкторе CApplication, т.е. инициализирую там класс, который подклюбчается к БД основног осервера и смотрит лицензионный ключ. Насколько это хорошее решение? Понимаю, что не идеальное, но я еще хочу:

  • Зашифровать файл (малоизвестным, но достачно неплохим шифрощиком)

  • Попытаться положить файл на основной сервер и инклудить его оттуда - тут пара проблем: надо чтобы php.ini позволял нам удаленные файлы инклудить, второе - по умолчанию Yii ищет классы локально внутри себя…(

Т.к. ты исходники будеш распостранять то всю твою защиту смогут обойти.

Весь код будут видеть и смогут смоделировать такуюже структуру базы данных у себя. поэтому в твоей защите пропадает какой либо интерес если не будет шифрования самих исходных файлов. Используй ZendGuard или другие продукты в этом направлении.

Ты не понимаеш что у людей есть все твои исходники. Твои проверки в самом обточеном варианте в любом случае будут выгоядеть как :

if (ключ_получил и ключ отличный) {

// выполняем функции которые всеравно находятся в исходниках

} else {

// сыпим ошибки

}

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

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

Ну так при шифрование и так понятно, я его и собираюсь использовать, т.е. буд все эти детские проверки шифровать. А Зенд обходят только так, это не проблема.

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

тогда смысл от защиты на дурака? умный разберет вашу систему и выложит в интернет как её вскрывать. не вижу смысла делать это вобще если незнаете как сделать что б и умный её не обошол.

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

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

Да в том то и дело что я гуглил это дело часто и отлично понимаю состояние зенда на рышке шифрования в данный момент.

Расскажите тогда по теме в двух словах что будет из себя представлять проект который вы собераетесь распостранять среди людей и хотите защитить его. и самое главное какие цели приследуются при защите (если лицензия истекла тогда скрипты перестают работать? база проекта находится у вас на сервере или распостраняется вместе с программой?)

малость не  в тему… ;) а лицензия Yii позволяет просто так вот использовать его в закрытых и платных проектах???? ???

Yii распространяется по лицензии BSD (читайте хотя бы педивикию о этой лицензии: http://ru.wikipedia.org/wiki/BSDL)

Ну а что касается моего проекта, это наш CMS, который мы очень активно внедряем на сайты клиентов. И проблема не в том, что он мегакрут и наворочен, нет, отнюдь. Вполне себе самодостаточный двиг, дело в том, что в городе очень сильна конкуренция и того и гляди уведут и перенимут себе его, т.к. город маленький, а др.компании-монстры уже постарели и им было бы кстати что-то подобное взять. Вот чего и боюсь.

Вот я наверное и объяснил цель защиты нашего продукта. Это отнюдь не подростковая кичливости, просто реальное положэение дел на локальном рынке в нашем городе.

БД распространяется с проектом если вы про БД с данными сайта, а если с данными лицензий - то на нашем сервере, но вот этот момент пока временный. Я пока не знаю как лучше сделать, собственно потому тут и написал, хотя и понимаю что затеял заезженную тему. Статей перерыл немало, вот например тут увидел абсолютно тоже самое, что вы говорите: http://habrahabr.ru/blogs/php/29301/

Поэтому не думайте, что я это прибежал и решил защитить, я основательно хочу подойти к делу, вот и прошу совета.

Кстати, о ZEND много сказано в той статьей на хабре, а про нас - он дороговат пока для нашего кармана. Мы купили вот такую штуку на пробу: http://zorex.info - кстати тут есть и онлайн шифратор файлов, еще он делает привязку по домену и ip, вообщем неплохая вещь и недорого.

Quote

Yii распространяется по лицензии BSD (читайте хотя бы педивикию о этой лицензии: http://ru.wikipedia.org/wiki/BSDL)

прочитал! Спасибо! ;)

Quote

Мы купили вот такую штуку на пробу: http://zorex.info - кстати тут есть и онлайн шифратор файлов, еще он делает привязку по домену и ip, вообщем неплохая вещь и недорого.

Уже есть какие-то выводы по использованию zorex? Действительно хорошая вещь? Как влияет на производительность?

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

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

Хороший обзор кстати тут есть: http://www.manhunter…odifikacii.html

Quote

Хочу к своей коммерческой разработке прикрутить небольшую штуку, чтобы можно было защитить код от воровства.

делай сайт на CGI

Обожаю, когда начинают такие советы давать  ;D Наверное, если я его сделал на php на то есть свои причины и мы этот проект поддерживаем больше 2 лет, как то переползать на cgi только ради того, что там двоичные исходники вряд ли эффективно.

Quote

переползать на cgi только ради того, что там двоичные исходники

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

а как предлагаете перенести yii на cgi?  ;D

перепишем Yii на C !! кто за ?? :) ;)

Quote

перепишем Yii на C !! кто за ?? :) ;)

если ты про asp.net то я категорически против

уж очень тормознутая фигня

нет, я про старый добрый Си !!!