| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Для профи > Лицензирование/привязка скрипта к домену |
| Автор: ilyalyu 1.4.2009, 17:52 |
| Вопрос - как программно привязать скрипт к домену? Что уже имеется: имеется обфускатор, который маскирует код. Остается разбросать по скрипту вставки, проверяющие доменное имя на совпадение с тем, что было указано при покупке. Проблем в том, откуда вытащить доменное имя. Очевидно, если извлекать его из переменной $_SERVER["HTTP_HOST"] или любой другой переменной, то обмануть такую защиту будет проще простого - достаточно изменить значение переменной. Пока я вижу два варианта: 1. Самый лучший вариант, это если доменное имя присутствует в обрабатываемых данных. Но к сожалению это случается не всегда. 2. Использовать функцию getenv. Есть надежда, что обмануть эту функцию сложнее, чем заменить переменную, хотя полной уверености у меня нет. Подозреваю, что для эфективной защиты использования всего одного-двух методов недостаточно. Поэтому нужна ваша помощь. |
| Автор: ksnk 1.4.2009, 18:13 |
| ilyalyu, подозреваю, что защищать скрипт (один файл?) от воровства не имеет смысла... Все равно он доводится до ума на месте. Разве что можно повбивать констант, чтобы инклудились файлы только по одному конкретному месту и выводились ссылки только на один конкретный сайт. Тогда при переносе скрипта на другое место "злоумышленик" приобретет геморой, а вы потеряете еще одного клиента |
| Автор: ilyalyu 1.4.2009, 19:30 | ||||||
не понял почему один файл не имеет смысла защищать. если в этот файл запихать api, без которого все остальное не будет работать, то, по-моему, вполне даже стоит.
я так понимаю, вы предлагаете прописать абсолютные пути к файлам. этот способ не пройдет, т.к. клиент может переехать к другому хостеру (на другой компьютер) и у него все полетит. мне надо привязаться не к компьютеру (не к hardware) а именно к доменному имени.
то есть геморой должен возникать только при попытке переехать на другой домен, но никак не при переезде на другой компьютер. |
| Автор: ilyalyu 2.4.2009, 21:59 | ||
я же писал - есть обфускатор. после него названий функций в явном виде не остается. насчет zend guard - что-то мне подсказывает, что (1) его использование ухудшит переносимость скрипта (portability), (2) для него существуют стандартные ломалки, (3) в нем отсутствует механизм привязки именно к домену (а не к hardware), (4) он стоит денюшек. |
| Автор: MoLeX 3.4.2009, 06:03 | ||
А он всем известный? если да то пиши свой, на 100% ты все равно свой проект не когда не защитишь (главное доставить больше неудобств взломщикам, чтобы затраты были выше чем достигнутая цель, то бишь твой скрипт) |
| Автор: Sanchezzz 3.4.2009, 06:51 | ||
| web приложения написанные на php не имет смысла скрывать код если ваш продукт юридический защищен. 1 думаю попавшийся сайт на ломаном продукте можо легко узнать по его регистрационным данным домена, если это бесплатный то пишите письмо сперва им если неотвечают то в их сапорд, что так и так, такие то такие, нарушают ваше лицензионное соглашение и ваше требования, чтобы они предупредили или отключили домент это правело действует и на платных тоже... 2 Создовай уникальные ключи по которым ты будешь отслеживать клиентов даже лучше создать базу. Если клиент начинает обновление то он передает ключ и название домена впринципе будет видно откуда запрос пришел. проверяем действительный ли ключ? если такого по всей бд нет, то это ломаный продукт. Если ты подумаешь а почему бы не отсылать в определенное время специальный запрос с их сайта, то ты нарушаешь их прова, все отправки с их сайта на твой грубо говоря, должны быть согласованны, чтобы пользователь знал какая информация передается. 4 как защитить свой продукт на форуме обсуждалось не раз. 5 Зендят обычно демо или какойто специфический скрипт но невкоем случаи cms итд такого жанра продукт. Вопрос к тебе если ты собираешьсяскрывать код, то как купленный товар можно будет изменить вплане разрободчика вот ему нужно разроботать систему и привезать к твоей он будет искать разкодировшик или обращятся к тебе. Мое мнение купил клиент продукт путь, что хочет с ним делает. Главное чтобы он не нарушал твои прова оговоренные в лицензии.
с этими словами я стобой согласен на все 100%. Добавлю от себя главное себе неудобств в такой задачи не доставить. Вроде все написал, теперь можете кидаться тапочками |
| Автор: ilyalyu 3.4.2009, 19:59 |
| вопрос заключался в том как привязаться к домену, а не в том стоит ли защищать код на php или нет. если есть идеи, пожалуйста, напишите. |
| Автор: solenko 4.4.2009, 07:05 | ||||||
Т.е. имена стандартных функций вы тоже меняете?
1 -- да 2 -- ну попробуйте бысто найти для зенда и ионкуба. Они, кстати, тоже денег стоят 3 -- существует 4 -- ну вы же написали нечто такое что стоит защищать, а значит имеющее комерческую ценность и покупка гуарда лишь немного снизит прибыли. )
Почему? |
| Автор: Sanchezzz 4.4.2009, 08:11 | ||
Вот допустим такая ситуация ты покупаешь cms неважно какую и она за зендина тебе необходимо прикрутить к такой cms свою систему что ты будешь делать раззендивать? я лично нет. Мнебы не хотелось через попу подладить к такой системе. Я лично не волнуюсь о краже кода и подделки лицензии. уже наверное как пол года один пишу cms пока еще показать не могу только если скринами или видео(в личку если что пишите) и о защите лицензии не беспокоюсь, буду регистрировать свой интеллектуальный продукт, и путь использую незаконно это увеличит только популярность продукта, ну если найду то высажу свои кровные денежки. |
| Автор: skyboy 4.4.2009, 10:25 |
т.е. разработчики CMS будут такими тупыми, что не предусмотрять ни возможности подключения самописных плагинов, ни предоставять интерфейс для интеграции с другими продуктами? Если да, то зачем тогда у таких "дальновидных" людей покупать продукт? Ведь и продукт наверняка будет соответствующего качества! |
| Автор: nerezus 4.4.2009, 11:10 |
| Лучшая защита - это осознание того, что твой код нахрен никому не нужен. Особенно поражает, что свой код считают мегауникальным и всем меганужным люди, котороые даже не осилили поиск: такую тему на каждом тематическом форуме раз в месяц задают. |
| Автор: ilyalyu 4.4.2009, 21:15 | ||||
nerezus, если данную тему поднимают каждый месяц, сделайте доброе дело - опишите несколько методов привязки к домену или дайте ссылку. ведь вы же осилили данную тему и уже знаете, что в ней обсуждаются методы привязки к домену, а не методы оценки мегауникальности скриптов, написанных автором темы.
посмотрите вот эту страничку http://www.php.net/manual/ru/functions.variable-functions.php . возможно, появятся идеи, как можно скрыть имена стандартных функций. я готов обсуждать методы обфускации кода на php, но в данный момент меня интересует другой вопрос. |
| Автор: nerezus 4.4.2009, 21:20 | ||
И это звучит в каждой такой теме. |
| Автор: xZ0RGx 19.6.2009, 01:36 |
| Хотя тема несколько и устарела. Все равно отвечу. Отвечу по существу. Без критики или одобрения. По-моему самый правильный вариант. Есть вопрос - надо дать ответ. Человек спрашивает как защитить? Он не спрашивает стоит это делать или нет. Посмотрите в сторону ionCube например. Он не так просто ломается, как zend. В паблике декодера нет, поговаривают, что есть в привате у китайцев, но все же то уже лучше чем зенд. Можете посмотреть про nuCoder еще. И вообще погуглите. |
| Автор: nerezus 19.6.2009, 02:11 | ||
По факту же это ему не нужно и мы помогали, открывая на это глаза. |
| Автор: eXed 22.7.2009, 15:02 | ||
в PHP существует такая хорошая штука, как $$var, eval, ну и ряд функций кодирования/декодирования.
ну и собственно поиск по файлам тут ничего не даст. Примерно таким способом построена защита копирайта в Invision Power Board® 1.x Долго искал, но нашел, красиво придумали P.S. Не ломал, лицензию не нарушал!!! Стандартная надпись дизайн малость портила, пришлось править. |
| Автор: SneG0K 22.7.2009, 16:24 | ||
Быстро. У меня уже есть. |
| Автор: eXed 23.7.2009, 04:17 | ||
| Малость не по теме, но рискну описать используемый мной бесплатный способ защиты, зенды/ионкубы отдыхают за свою стоимость Для защиты скрипта от просмотра в попытках найти его защиту можно использовать такой примитивный метод:
После обработки файлов в несколько тысяч строк данной функцией ни один редактор не справляется с просмотром - некоторые либо дико тормозят, либо стреляются. "Улучшаторы кода" вообще не понимают что делать. Тут даже шифровать ничего не требуется и так черт ногу сломит Да и на скорости выполнения скрипта отражается только положительно, интерпретатору в данном случае не приходится лишних данных обрабатывать. Еще можно попробовать запихать все файлы проекта в один, но тут нужно думать о коде чтобы переменные/функции не пересекались, все include убрать придется ... сложней задачка. |
| Автор: nerezus 23.7.2009, 04:22 | ||
Код восстановлен. |
| Автор: eXed 23.7.2009, 04:32 |
| nerezus, надо проверить, как-то не появлялось у меня желания открывать PHP код в VS ;-) Установил VS.php раскраска есть, по строке без тормозов бегает, но ваша комбинация не робит :( Пробовал зажать все кнопки одновременно - код тоже не улучшился В любом случае, даже если код будет преобразован, кто в нем разберется без комментариев? p.s. меня один заказчик ждал без малого два года, скрипт на 4 файла, с комментариями. Я сначала давал обещания переделать, но не было времени и возможности оторваться от других проектов, в процессе переговоров интересовался - может другой кто возьмется, нет говорит - с кем беседовал сказали, что нужно все переписывать с нуля. Вывод: люди не хотят тратить время на ковыряние с чужим кодом, а если кто-то захочет значит ему за это очень хорошо заплатят. Если вы ваш код оцениваете в килобаксы, то тогда может и есть смысл строить забор, в противном случае я бы рекомендовал не паниковать и не тратить нервы почем зря. Лучше больше клиентов найти, чем думать, как от одного все защитить p.s.s. Еще в скрипты можно встраивать не защиту, а backdoors. |
| Автор: solenko 23.7.2009, 08:13 |
А вот за это обычно больно-прибольно бьют по рукам. И правильно делают. |
| Автор: Sanchezzz 23.7.2009, 11:03 |
| Кстати "backdoors" в продуктах запрещены это нарушение конфиденциальной информации пользователей, по судам не хотите бегать? |
| Автор: eXed 23.7.2009, 18:55 |
| solenko, Sanchezzz, на этом я завершу размышления о защите - защититься можно слишком "хорошо" - репутация, дальнейшая работа пальцами (: +последствия - на первом месте! Все зависит от правильно составленного договора. Привязка к домену или IP адресу самый понятный для обоих сторон пункт, который и используют известные продукты. Но если скрипт незаметно, без ведома заказчика, будет отправлять данные о своем окружении, свой серийный номер, домен, IP & etc. - это уже будет нарушением приватности. Конечно при условии, что заказчика не подписался под такими условиями лицензии/договора. |
| Автор: nerezus 23.7.2009, 22:48 | ||||||
Код новичка уже может стоить килобаксы, при этом являясь продуктом схожим с продуктами пищеварения в силу затрат труда. Но он никому не нужен. Ровно как и код профи. Это заблуждение думать, что все хотят спереть твой код. |
| Автор: eXed 28.7.2009, 20:53 |
| nerezus, В твоем Аватаре столько несогласия внутри - сколько его в твоих сообщениях. Прошу прощения, что на ТЫ. |
| Автор: IZ@TOP 31.7.2009, 12:51 |
| Я займу сторону nerezus-а. Не вижу смысла так трепыхаться. Мне проще выпустить продукт со свободной лицензией, зарабатывая деньги исключительно на поддержке и адаптации под задачи заказчика, написание дополнительных модулей и тому подобное, чем устраивать геморрой себе и прочим людям. В нашей стране желание халявы неискоренимо и ничего с этим не поделаешь. Если уж такой гигант как Mircosoft не может защитить свои продукты, что тогда можно говорить здесь и сейчас, особенно студентам-самоучкам, которые стряпают ###сайты сотнями для жидов заказчиков, которым жалко заплатить нормальные деньги за качественную работу. |
| Автор: owlet 24.1.2010, 04:27 |
| По теме могу сказать, что http://www.ioncube.com/ - вероятно, наиболее удачный вариант обфускатора, т.к. его проблематичнее сломать, нежели http://www.zend.com/en/products/guard/, несмотря на то, что он стоит в 3 раза дешевле последнего. |
| Автор: nerezus 24.1.2010, 05:23 |
| owlet, http://ru.wikipedia.org/wiki/Обфускатор |