Задать вопрос

Eval() в PHP не является функцией. Как быть?

В PHP eval() не является функцией: «Because this is a language construct and not a function, it cannot be called using variable functions» (ссылка).


Опция disable_functions в php.ini на eval() не влияет.


Как запретить использование eval(), не прибегая к safe mode?
  • Вопрос задан
  • 6131 просмотр
Подписаться 7 Оценить 5 комментариев
Решения вопроса 1
@Kane
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
@YourChief
может просто поставить suhosin-patch, который его запрещает и делает другие полезные вещи?
Ответ написан
AFoST
@AFoST
помимо eval еще есть куча других способов выполнить php код.

например:
1. $newfunc = create_function('', '};phpinfo();//');
2. preg_replace с модификатором /e
3. обратные ковычки: `ls -lia`
4. и куча других фишек...
Ответ написан
Gibbzy
@Gibbzy
правильный ответ — никогда не использовать eval.
В большинстве случаев подходит это
php.net/manual/en/function.call-user-func.php

Если вам никак нельзя обойтись без eval() то что то в вашем коде не так.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы