Защита сценариев PHP CLI
В настоящее время я пишу небольшой коммерческий PHP Script, который будет менеджером VPN (PPTP), в командной строке.
На самом деле, это сервер сокетов, который ожидает таких команд, как "создать", "приостановить", "отключить", "изменить пароль"... Затем он анализирует файлы PPTP и модифицирует их.
Дело в том, что мне нужно будет предоставить PHP-файлы, которые настолько просты, что для их установки требуется ТОЛЬКО php5-cli (и без apache, ничего больше), мне нужно защитить его от чтения (на самом деле, это всего 1 файл)., который является целым классом. Остальное может быть ясно). Я хочу, чтобы система была максимально легкой, поэтому нет необходимости в GUI, веб-сервере, curl, *sql...
Я думал о IonCube, но он очень дорогой и не может использоваться со скриптами cli, потому что ему нужен загрузчик, который загружается через apache. Это проблема каждого кодера, я думаю.
Я думал о HipHop PHP (из Facebook), но трудно понять, как его использовать (потому что я могу скомпилировать свои исходные коды, но в руководстве пользователя сказано, как запустить наш чистый исходный код с ним:/).
Итак, я здесь, чтобы получить помощь по этому поводу. У меня есть несколько сценариев PHP-cli, которые должны запускаться из командной строки, которым не нужен веб-сервер, и мне нужно только (так как это коммерческий продукт) защитить мои источники от чтения и незаконного распространения (это будет легко) обойти лицензионную систему). Этот файл просто класс PHP.
Благодарю.
- Правка - Точно, я хочу, чтобы он оплачивался по месяцам, 6 месяцам, годам. Если это понятно, то каждый сможет прокомментировать проверку лицензии и получить ее бесплатно. Мне нравится с открытым исходным кодом, для доказательства, я написал 3 класса для этого проекта, менеджер отладки / предупреждения / ошибки с обработкой вывода (stdout / stderr / logfile) и класс Socket, который вы просто должны включить и расширить, и у вас есть полный сервер (и вам просто нужно реализовать необходимые функции, сервер будет вызывать "полученный комманд"(), и я не хочу запутывать эти 2 класса.
1 ответ
Что касается ionCube, существует онлайн-кодировщик, который выполняет однократное кодирование вашего скрипта всего за несколько долларов, в зависимости от размера вашей кодовой базы. Если вы напишите свой собственный механизм лицензирования, вы сможете использовать его. Кроме того, ваше утверждение о загрузчике ionclube неверно, apache не требуется, это всего лишь модуль, который можно загрузить в php.ini. IonCube - по моему мнению - хороший выбор.
Не торопитесь, чтобы действительно спросить, сколько защиты вам нужно. Компьютер всегда будет понимать, как интерпретировать ваш код, поэтому в конечном итоге человек сможет заглянуть внутрь, если он действительно этого захочет.
Если загрузчик ionCube не подходит для ваших клиентов, есть несколько "обфускаторов" для PHP, которые, вероятно, не позволят "быстрым заглядчикам" понять код менее чем за час. Эти obfuscaters не будут зашифровывать ваш код, но они сделают его менее читаемым, изменив все ваши переменные, функции и имена классов в несколько произвольных хэшей, и удалив все ваши комментарии и пробелы. Им не нужно ничего запускать на сервере, но в итоге ваш PHP-код все равно останется прежним.