Самостоятельное создание сайта
Самостоятельная раскрутка и продвижение сайта

Bcompiler расширение php

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

   Основная программа для защиты php кода это Zend Encoder/Zend Guard. Программа от разработчиков Zend PHP Company, основатели которой и создали ядро php. Другими словами разработчики php с одной стороны модернизируют и распостраняют бесплатно язык php, а с другой стороны предлагают воспользоваться программой Zend Encoder/Zend Guard для защиты кода на платной основе. Сегодня лицензия на этот продукт стоит $799 за 1 год использования.
   Существуют, также, и еще много других продуктов других независимых разработчиков. Неплохо себя зарекомендовал и ionCube PHP Encoder. Для этого продукта существует 3 варианта лицензий, среди которых, базовая лицензия стоит $199 за 1 год использования для 1 машины (компьютера).
   Помимо этих самых популярных платных продуктов есть еще целый ряд других, ознакомится с ними Вы можете поискав их в интернете. Вот наиболее широкий список предлагаемых продуктов по защите php кода с их кратким описанием, который я нашел.

   Основными недостатками всех этих программ является:
      - платность, как правило необходима ежегодная покупка лицензий. Хотя в стоимость и входит апгрейд и бесплатная поддержка.
      - существование декодеров, способных расшифровать Ваш защищенный код. Например, для расшифрования Zend Encoder/Zend Guard существуют Zend Dencoder'ы (например, MMSCN Dezend или онлайн-сервис). В пользу ionCube PHP Encoder можно сказать, что публичных онлайн сервисов пока нет, да и программ для декодирования не найдено, но со временем, думаю появятся.

   Основными действиями, которые выполняют енкодеры:
      1. обфускация php кода - удаление всех необязательных лишних символов в скрипте, таких как пробелы, переносы строк и комментарии, что превращает код в одну сплошную строку. А также, самое основное это замена названий переменных и функций (в том числе внутри классов) на трудные для восприятия наборы символов, на пример такого вида: $_1_1_0, $_1_1_0_ или $_c2m4f6sk8 и по специальному алгоритму, цель которого затруднить восприятие.
      2. в различной очередности криптование и шифрование кода различными алгоритмами n-количество раз. Однако, в большинстве одного программного обеспечения используеться похожая система, что и позволяет создавать декодеры.

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

$str='какой-то текст';
echo(base64_encode($str));
echo(base64_decode($str));

   Ну и наконец, после краткого вступления, я подхожу к основной теме этой статьи. Это установка и использование bcompiler'а.
   Bcompiler - это специальная библиотека/расширение для php позволяющая превратить php скрипт в байт код, который непосредственно читается и выполняется php-интерпретатором. Bcompiler это эксперементальное расширение для php, которое можно использовать на свой риск. На сайте php.net указывается, что использование bcompiler'а, как средство защиты php скриптов, делает практически невозможным как воссоздание кода в первичный вид, так и изменение его. Однако, все данные которые прописаны в скрипте, как значение переменных, конечно, можно вытянуть. Поэтому не рекомендуется хранить пароли и другую важную информацию.

   Основные плюсы bcompiler'а это:
      - бесплатное использование;
      - увеличение скорости выполнение скриптов приблизительно на 30%;
      - эффективная защита php кода. По крайней мере, в интернете Вы врядли, сходу найдете не то, чтоб информацию о востанновлении данных, а и о самом bcompiler'е, кроме официального сайта.
   Когда я искал информацию о bcompiler, то у меня сложилось впечатление, что развитие этой библиотеки и ее возможностей логически невыгодно для Zend PHP Company, ведь фактически этот бесплатный енкодер может также успешно заменять платный Zend Encoder/Zend Guard.
   Основные минусы bcompiler'а:
      - подключение на хостинге к php библиотеки/расширение bcompiler.(so | dll). Однако для большинства хостеров это, впрочем, не проблема. Они позволяют в настройках хостинга самостоятельно подключить модули или делают это сами на Вашу просьбу.
      - пока еще нет стабильной версии bcompiler'а. Эта библиотека в составе PECL официально находится на стадии beta-тестирования уже 8 лет.

   Подключение и использование bcompiler'а.

   Сперва необходимо подключить библиотеку bcompiler, как php расширение в виде модуля в файле php.ini.
   В Windows Вам понадобится dll расширение, для этого скачайте этот файл php_bcompiler.dll (v0.9s). скопируйте его в папку /php/ext к остальным библиотекам и пропишите подключение в файле php.ini в месте, где подключаются другие модули следующую строку:

extension=php_bcompiler.dll

   Если Вы используете UNIX-систему, то Вам необходимо скомпилировать расширение bcompiler с помощью PECL/PEAR. Компиляция bcompiler'а для Fedora:

yum install bzip2
yum install bzip2-libs
yum install bzip2-devel

yum install php
yum install php-devel

yum install php-pear

pear install bcompiler-beta

   Теперь Вам необходимо найти подходящий хостинг, можно рассмотреть такие варианты:
      1. найти хостинг на windows платформе, тогда можно легко подключить dll расширение;
      2. найти хостинг на котором, у Вас будет возможность разместить/проводить свои сборки php;
      3. хостер сам соберет php в составе bcompiler'а.

   Для создания отдельного зашифрованого файла с байт кодом, необходимо использовать функции: bcompiler_write_file(), bcompiler_write_header() и bcompiler_write_footer(). Например:

$fh = fopen("test.phb", "w");
bcompiler_write_header($fh);
bcompiler_write_file($fh, "test.php"); //исходный файл для компиляции
bcompiler_write_footer($fh);
fclose($fh);

   В результате мы получаем файл test.phb. Обратите внимание на расширение файла *.phb. Это стандартное понятное расширение для определения файлов обработаных bcompiler'ом. Это полноценные файлы, которые могут подключатся выполняться вместе с открытым кодом. Например:

...
$x = $b."str";
require_once('cfg.phb');
echo $x;
...

   Файлы с байт кодом выполняются на одном уровне с обычным открытым кодом. Это значит что Вы можете обращаться к функциям, классам и хранить переменные. Использование bcompiler'а удобно для защиты не всего сайта вцелом, а только самых важных частей кода. и шифрования отдельно взятых классов.

   Надеюсь эта статья про bcompiler. будет Вам полезна, особенно учитывая малое количество информации об этой библиотеке.

848
4 31
Рейтинг: +4 , голосов 31
Вы еще не голосовали!
Добавить комментарий (комментариев: 7)
Удалить ответ

Ваш почтовый ящик никогда не будет опубликован
Трудно разобрать цифры? Нажмите на рисунок, чтобы обновить.
#1 04/08/2012 13:06 Guy
reply
Возможна установка на AppServ?
#2 10/06/2012 07:43 gavru
reply
Статья хорошая, мы в своё время озадачились защитой проекта, в конце концов зашифровали IonCubОМ и не стали мучаться, в проекте 1500 файлов которые необходимо было зашифровать и ещё столько же нешифрованных, не уверен, что кто то будет расшифровывать, потом пошли ещё дальше, разработали проект для таких же как мы сами CRM для разработчиков программного обеспечения в котором есть учёт лицензий и генерация (и учёт) ключей, и один из встроенных генератором как раз есть IonCub.
#3 08/12/2011 13:41 Alex
reply
Скачал php_bcompiler.dll и положил в ext/, прописал extension=php_bcompiler.dll в php.ini - PHP теперь не запускается, в логах ничего нет. PHP Version 5.3.3 PHP API 20090626 PHP Extension 20090626 Zend Extension 220090626 Zend Extension Build API220090626,TS,VC6 PHP Extension Build API20090626,TS,VC6
#4 25/03/2011 15:44 Тарас
reply
Большое спасибо!
#5 02/02/2011 15:03 DNS
reply
Скорее всего bcompiler конфликтует с ZendOptimizer, отключите его в php.ini и попробуйте еще раз
#6 25/11/2010 18:54 Иван
reply
функция require_once(test.phb), include(test.phb) и подобные не работают с расширением phb. выдаёт ошибку Сигнатура проблемы: Имя события проблемы: APPCRASH Имя приложения: httpd.exe Версия приложения: 2.2.4.0 Отметка времени приложения: 45a476e3 Имя модуля с ошибкой: ZendOptimizer.dll Версия модуля с ошибкой: 0.0.0.0 что это может быть? Автор, вы с такой проблемой сталкивались?
14/12/2010 11:23 admin
нет, с такой проблемой не сталкивался, сборка apache+php видимо не устраивает, попробуйте без zend optimizer'a
#7 25/11/2010 10:53 Юрий
reply
Спасибо огромнейшее!

Дополнительно

» С чего начать сайт?

» Установка программ

» Пример создания сайта

» Хостинг и домен

» Оптимизация сайта

» Раскрутка сайта

» Заработок web-мастера

» Примеры PHP/Javascript

» Блог и мои записки

Последние новости

Статьи по рейтингу

» Особенности покупки контента 5.0 1
» Выбор хостинга 4.8 5
» Поисковые системы 4.7 9
» Курс молодого web-мастера 4.6 21
» Где взять бесплатные ссылки 4.5 11
» Что такое сниппеты 4.5 6
» Addstudio - SEO модуль 4.5 4
» Отладка js и CSS 4.4 14
» Стратегия дохода на Sape.ru 4.3 3
» Каталоги и биржи статей 4.3 4