Защита исходников PHP У меня возникла потребность защитить исходники на PHP при инсталляции на third-party сервер. Есть следующие категории программ для этого: обфускаторы, шифровальщики исходников и генераторы байт-кода. Можно совмещать, некоторые программы объединяют в себе два уровня.
Обфускаторы портят имена переменных, классов и методов, затрудняя реверс-инжиниринг логики программы. Однако, структура исходников остаётся прежней.
Про то, что они форматирование кода портят - я уж и не говорю, это легче всего восстанавливается имеющимися в избытке утилитами.
Шифровальщики исходников - вообще не добавляют секьюрности (а только создают её иллюзию) - перед выполнением всё одно исходники раскодируются.
Генераторы байт-кода компилируют исходники в байт-код, такой же, который генерирует само PHP при прекомпиляции скрипта. При этом теряется структура (вложенные блоки с циклами и ветвлениями становятся линейным кодом с переходами и условными переходами). Возможно, сохраняются идентификаторы - я не смотрел (тогда добавочно можно доработать напиль обфускатором).
Генераторы байт-кода - лучшее решение: исходники вообще не появляются на системе, где установлена программа. Об абсолютной неуязвимости говорить не приходится, байт-код ломается точно так же, - критерием "хорошей" защиты в этом случае является требуемая квалификация взломщика и стоимость взлома.
Ограничивает использование генераторов байт-кода необходимость убеждать хостинг-провайдера установить на свой веб-сервер загрузчик этого самого байт-кода.
Из трёх защит, работающих на уровне генератора байт-кода, я рассматривал Zend Encoder,
ionCube PHP Encoder, и microCODE.
Zend кусается (лицензия на год от $600, пожизненная - около $2500), microCode - судя по текущему номеру версии, ещё недозрелый. Предварительно я выбрал ionCube PHP Encoder - посмотрим на документацию и на триал, как скачаются.
Список всех ссылок, которые я использовал при поиске/оценке:
http://del.icio.us/t_gra/php+obfuscation
Current Mood: productive Current Music: Rammstein - Links 2 3 4 (Westbam Technoelectro mix) Tags: php, programming, software, web
|