Перейти к содержанию
Форум поддержки пользователей VamShop

Рекомендуемые сообщения

Здравствуйте.

В движке часто используется функция eval.

Назначение этой функции:

  Цитата
eval() вычисляет строку, заданную в code_str, как код PHP.

Говоря проще она выполняет код переданый ей в виде текста.

Из практики скажу, что, данную функцию очень любят использовать для бекдоров.

Так например можно создать переменную или цепочку значений других переменных, часть из которых может быть закодирована, передав такие переменные (часть из котрых может содержать команды для раскодирования других переменных) функции eval, можно выполнить в системе заданный php код, увидеть же выполняемый код в файлах скрипта в даном случае невозможно. Способов кодирования такого кода множество, кроме того часть кода может быть скрыта в перелдаваемой скрипту _GET переменой (в таком случае без этой _GET переменой код безобиден но разработчик сможет легко его выполнить).

Думаю понятно как это удобно для интеграции бекдоров (код позволяющий выполнять нужные разработчику бекдора манипуляции на стороне движка).

Чем вызвано такое обильное использование данной функции в движке магазина?

Простым поиском по файлам я нашла 85! вхождений, конечно часть из низ закоментирована а часть включена в javascript редактор, но оставшаяся часть это очень даже не мало, меня лично нервирует немного когда в коде даже один eval, не люблю я бекдоры вложенные в скрипт.

p.s.

Я ничего не утверждаю, но наличие данной функции пусть и с благими намерениями это потенциальная уязвимость, причем огромная, достаточно хакеру переназначить передаваемую функции переменную и вуаля, выпонен ЛЮБОЙ php код....

А аргументы что "не переназначит" я не принимаю, ибо, "знал бы прикуп..." нельзя никогда все предусмотреть, дыры есть в любом движке, даже яндекс ломался, потому нужно насколько возможно максимально минимизировать риски, а функция eval это при определённых обстоятельствах открытая дверь к недрам сайта.

Можно ли ожидать что следущая версия не будет содержать данной потенциальной уязвимости?

Ссылка на сообщение
Поделиться на другие сайты

  В 08.10.2011 в 10:02, VaM сказал:

Нет, код кардинально менять уже не будет.

А первый вопрос, в чем причина использваония в коде eval, да еще так часто?

Ссылка на сообщение
Поделиться на другие сайты

eval используется в 45 файлах, это меньше 1% от общего количества, если я правильно помню.

Если используется, значит так было нужно, я так думаю.

И не надо страшилки про eval рассказывать.

Ссылка на сообщение
Поделиться на другие сайты

  В 08.10.2011 в 13:59, VaM сказал:

eval используется в 45 файлах, это меньше 1% от общего количества, если я правильно помню.

Если используется, значит так было нужно, я так думаю.

Часто достаточно всего одного использования во всего одном файле чтобы зашить уязвимость (иногда даже случайно) или бекдор, но будем наедятся что сайт не взломают.

Хотя на хостингах где разрешены глобалсы риск этого сильно возрастает, благо таких сейчас немного.

  В 08.10.2011 в 13:59, VaM сказал:
И не надо страшилки про eval рассказывать.

Я всего лишь привела некоторые примеры того как эту функцию можно использовать и описание того зачем она нужна.

Ссылка на сообщение
Поделиться на другие сайты

Ломают не через eval, а через дырки, наиболее популярный способ - недостаточная фильтрация данных и, соотвественно, sql injection.

Ссылка на сообщение
Поделиться на другие сайты
×
×
  • Создать...