Лучшее решение для защиты кода PHP без шифрования

Прежде всего, я не ищу чуда ... Я знаю, как работает PHP, и что на самом деле нет способа скрыть мой код от клиентов без использования шифрования. Но это связано со стоимостью расширения, устанавливаемого на работающем сервере.

Я ищу что-то другое, хотя ... Я не пытаюсь зашифровать свой код или даже запутать его. Существует много сценариев PHP без зашифрованного /зашифрованного кода, но они являются коммерческими приложениями. Например, приложения форума vBulletin и /или IP.Board.

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

Я также открыт для любых других предложений.

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

65 голосов | спросил Ricardo Amaral 3 WedEurope/Moscow2008-12-03T05:11:30+03:00Europe/Moscow12bEurope/MoscowWed, 03 Dec 2008 05:11:30 +0300 2008, 05:11:30

11 ответов


0

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

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

Разработка EULA - это юридический вопрос, а не кодирование. Вы можете начать с чтения некоторого текста EULA для продуктов и веб-сайтов, которые вы используете. Вы можете найти некоторые интересные детали!

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

Некоторые части EULA, которые приходят на ум:

  • Ограничение вашей ответственности, если продукт содержит ошибки или вызывает повреждение.
  • Разъяснение того, как клиент может использовать свое лицензионное программное обеспечение, как долго, на скольких машинах, с правами на распространение или без них и т. д.
  • Предоставление вам прав на аудит их сайта, чтобы вы могли применять лицензии.
  • Что произойдет, если они нарушают лицензионное соглашение, например, они теряют право использовать ваше программное обеспечение.

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

edit: Если этот проект не может оправдать расходы на адвоката, ознакомьтесь со следующими ресурсами:

ответил Bill Karwin 3 WedEurope/Moscow2008-12-03T05:20:26+03:00Europe/Moscow12bEurope/MoscowWed, 03 Dec 2008 05:20:26 +0300 2008, 05:20:26
0

Вы должны учитывать свои цели:

1) Вы пытаетесь запретить людям читать /изменять ваш код? Если да, вам понадобится инструмент запутывания /шифрования. Я использовал Zend Guard с большим успехом.

2) Пытаетесь ли вы предотвратить несанкционированное распространение вашего кода? Лицензионное соглашение EULA /проприетарное право даст вам юридическую силу для предотвращения этого, но на самом деле не остановит его. Схема ключа /активации позволит вам активно отслеживать использование, но может быть удалена, если вы также не зашифруете свой код. Zend Guard также имеет возможность привязать определенный скрипт к конкретному клиентскому компьютеру и /или создавать ограниченные по времени версии кода, если вы этого хотите.

Я не знаком с vBulletin и т.п., но им нужно либо зашифровать /запутать, либо доверять своим пользователям, чтобы они поступали правильно. В последнем случае у них есть защита от наличия EULA, которая запрещает поведение, которое они считают нежелательным, и правовая система, подтверждающая нарушения EULA.

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

ответил Jim OHalloran 3 WedEurope/Moscow2008-12-03T06:04:31+03:00Europe/Moscow12bEurope/MoscowWed, 03 Dec 2008 06:04:31 +0300 2008, 06:04:31
0

Вы можете использовать php-компилятор:

Roadsend

phc

ответил grepsedawk 3 WedEurope/Moscow2008-12-03T05:23:20+03:00Europe/Moscow12bEurope/MoscowWed, 03 Dec 2008 05:23:20 +0300 2008, 05:23:20
0

Некоторое время я не смотрел на исходный код VBulletin, но способ, которым они делали это примерно в 2003 году, заключался в том, чтобы встроить вызов на их сервер внутри кода. IIRC, он был на очень длинной строке кода (например, длиной 200-300 символов) и был разбит на несколько конкатенаций строк и тому подобное.

Он не сделал ничего «плохого», если вы его пиратским - форум все еще работал на 100%. Но IP вашего сервера был зарегистрирован вместе с другой информацией, и они использовали это для расследования и принятия юридических мер.

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

ответил Alarion 3 WedEurope/Moscow2008-12-03T06:08:57+03:00Europe/Moscow12bEurope/MoscowWed, 03 Dec 2008 06:08:57 +0300 2008, 06:08:57
0

Если вы не можете создать «облачное приложение», которое вы размещаете сами и к которому вы получаете доступ через Интернет, то вы можете изучить создание виртуального устройства с использованием виртуального сервера (от VMWare, Parallels, Sun и т. д.) и установить "облегченная" версия Linux на этом. Поместите ваш PHP-код в виртуальную среду и установите виртуальную машину на их сервер. Обязательно создайте способ предотвратить загрузку в корень. Конечно, это будет связано с физическим посещением клиента самостоятельно.

ответил 17 PM00000090000003431 2009, 21:59:34
0

Они распространяют свое программное обеспечение по частной лицензии . Закон защищает их права и не позволяет их клиентам перераспределять источник, хотя в действительности нет никаких трудностей с этим.

Но, как вы, наверное, знаете, нарушение авторских прав (пиратство) программных продуктов является довольно распространенное явление .

ответил Eran Galperin 3 WedEurope/Moscow2008-12-03T05:17:07+03:00Europe/Moscow12bEurope/MoscowWed, 03 Dec 2008 05:17:07 +0300 2008, 05:17:07
0
На мой взгляд,

, но на всякий случай, если ваша php-программа написана для автономной модели ... лучшие решения это c) Вы можете обернуть php в контейнер типа Phalanger (.NET). как все знают, это тесно связано с системой, особенно если ваша программа предназначена для пользователей Windows. вы просто можете создать свой собственный алгоритм защиты на языке программирования Windows, таком как .NET /VB /C #, или на том, что вы знаете в наборе .NET prog.lang.family.

ответил achy 29 +04002011-10-29T21:23:53+04:00312011bEurope/MoscowSat, 29 Oct 2011 21:23:53 +0400 2011, 21:23:53
0

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

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

Большая часть кода, который я вижу, поставляется с лицензией и, возможно, гарантией. Возможно, будет достаточно строки в верхней части сценария, в которой люди не будут изменять сценарий. Само; когда я нахожу не открытый исходный код, я не буду использовать его в своих проектах. Возможно, я немного обману, но я ожидаю, что ppl не будет использовать мой код без OSS!

ответил qualbeen 4 ThuEurope/Moscow2008-12-04T02:49:57+03:00Europe/Moscow12bEurope/MoscowThu, 04 Dec 2008 02:49:57 +0300 2008, 02:49:57
0

Zend Guard не поддерживает php 5.5 и его легко изменить, перейдите на страницу http://www.ioncube.com для запутывания. http://wwww.phplicengine.com может лицензировать сценарии удаленно или локально.

ответил Igdrazil 1 AM000000100000004631 2014, 10:47:46
0

См. наш SD PHP Obfuscator . Обрабатывает огромные системы файлов PHP. Нет требований времени выполнения на PHP-сервере. Никаких дополнительных затрат времени выполнения.

[РЕДАКТИРОВАТЬ, май 2016 г.] В недавнем ответе отмечалось, что Zend не поддерживает PHP5.5. Обфускатор SD PHP делает.

ответил Ira Baxter 4 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowFri, 04 Sep 2009 07:51:47 +0400 2009, 07:51:47
0

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

Как насчет того, чтобы иметь ангела с огненным мечом?

  1. Может показаться наивным, и я не знаю, что на самом деле делает ваше приложение, но как насчет широкого использования включений?

  2. Для законного пользователя все программное обеспечение должно быть видимым или только его части? Потому что вы могли бы запутать и передать копию исходного кода законным

  3. Вы можете поместить php в контейнер, например Phalanger (.NET)

  4. Возможно, вас беспокоит внешняя кража, то есть ваш код, свободно видимый в Интернете, когда клиенты его используют. Это может стоить инвестировать в дешевый хостинг для веб-сайтов за 50 долларов в год, регистрируя ваших законных клиентов с помощью серийного номера в их коде и регулярно размещая информацию о вашем приложении на вашем веб-сайте. По крайней мере, вы обнаружите, когда код был скомпрометирован. Вы можете начать самоуничтожение через n дней, что даст вам достаточно времени, чтобы связаться с клиентом и изменить серийный номер. Это может быть единственным запутанным include () всего кода

ответил joe Black 31 MaramThu, 31 Mar 2011 04:51:45 +04002011-03-31T04:51:45+04:0004 2011, 04:51:45

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132