Alexey Tigarev ([info]t_gra) wrote,
@ 2005-04-19 17:52:00
Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Current mood:productive
Current music:Rammstein - Links 2 3 4 (Westbam Technoelectro mix)
Entry tags:php, programming, software, web

Защита исходников 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




(Post a new comment)


[info]samoylik
2005-04-20 10:32 pm UTC (link)
Эм. Кажись все php с зендом поставляются. Посмотри phpinfo на хостинге.
Кстати, не факт, что пароли к базе не остаются открытым текстом и чтобы его выцепить достаточно будет аналогичный файл с инсталляции с этилонным паролем скопмпилить у себя и сравнить

(Reply to this)


[info]ascendanter
2005-04-21 05:56 am UTC (link)
И как ZEND, с практической точки зрения?

(Reply to this)


[info]ascendanter
2005-04-21 06:02 am UTC (link)
в смысле, IonCube :)

(Reply to this)

когда я задавался этим вопросом
[info]vvlad
2005-04-26 08:26 am UTC (link)
нашел крякнутую версию zend encoder... Попробовал - работает хорошо.
Сам не применял. Знакомых веб девелоперов порасспрашивал - народ использует нелицензионные версии Zend Encoder.
Т.е. мой совет из ряда "Ну все же используют крякнутый Zend Encoder - и ничего"
А ставить закриптованные скрипты на сервер - одно удовольствие - закачал и оно работает.
Устанавливать zend-optimizer в случае когда его еще нет на сервере - самому просто и хостеры не отказываются его доустановить...
Все ж таки стандарт

(Reply to this)


(Anonymous)
2005-11-22 01:38 pm UTC (link)
"Об абсолютной неуязвимости говорить не приходится, байт-код ломается точно так же, - критерием "хорошей" защиты в этом случае является требуемая квалификация взломщика и стоимость взлома. "

Кстати вот: http://zic-recovery.com/

Ребята это делают реально.

(Reply to this)(Thread)


[info]t_gra
2005-12-07 09:32 am UTC (link)
Спасибо!

(Reply to this)(Parent)


Create an Account
Forgot your login?
Login w/ OpenID
English • Español • Deutsch • Русский…