Дипломные работы от 1000 руб - диплом киев. Заказ дипломных работ.
Кнопка сайта:
По всем вопросам пишите на webmaster@info-pages.com.ua. Вы можете свободно использовать/размещать/перепечатывать статьи сайта всего лишь указав ссылку на источник.
Использование Bcompiler для защиты php кода
Подключаем Bcompiler
Размещено: 03 мая 2010
Несмотря на всю популярность 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 это можно реализовать так:
Ну и наконец, после краткого вступления, я подхожу к основной теме этой статьи. Это установка и использование 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:
Теперь Вам необходимо найти подходящий хостинг, можно рассмотреть такие варианты:
1. найти хостинг на windows платформе, тогда можно легко подключить dll расширение;
2. найти хостинг на котором, у Вас будет возможность разместить/проводить свои сборки php;
3. хостер сам соберет php в составе
bcompiler'а.
В результате мы получаем файл test.phb. Обратите внимание на расширение файла *.phb. Это стандартное понятное расширение для определения файлов обработаных
bcompiler'ом. Это полноценные файлы, которые могут подключатся выполняться вместе с открытым кодом. Например:
Файлы с байт кодом выполняются на одном уровне с обычным открытым кодом. Это значит что Вы можете обращаться к функциям, классам и хранить переменные. Использование
bcompiler'а удобно для защиты не всего сайта вцелом, а только самых важных частей кода. и шифрования отдельно взятых классов.
Надеюсь эта статья про bcompiler. будет Вам полезна, особенно учитывая малое количество информации об этой библиотеке.
Скачал 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
13:41 08.12.11
Тарас
Большое спасибо!
15:44 25.03.11
DNS
Скорее всего bcompiler конфликтует с ZendOptimizer, отключите его в php.ini и попробуйте еще раз
15:03 02.02.11
admin
нет, с такой проблемой не сталкивался, сборка apache+php видимо не устраивает, попробуйте без zend optimizer'a
11:23 14.12.10
Иван
функция require_once(test.phb), include(test.phb) и подобные не работают с расширением phb. выдаёт ошибку
Сигнатура проблемы:
Имя события проблемы: APPCRASH
Имя приложения: httpd.exe
Версия приложения: 2.2.4.0
Отметка времени приложения: 45a476e3
Имя модуля с ошибкой: ZendOptimizer.dll
Версия модуля с ошибкой: 0.0.0.0
что это может быть? Автор, вы с такой проблемой сталкивались?