Сведения о вопросе

HOLY

18:05, 1st October, 2020

Теги

PHP    

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

Просмотров: 345   Ответов: 4

В 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?



  Сведения об ответе

lourence

07:33, 25th September, 2020

  Сведения об ответе

qwerty101

06:21, 27th September, 2020

может просто поставить suhosin-patch, который его запрещает и делает другие полезные вещи?


  Сведения об ответе

DINO

00:28, 25th September, 2020

помимо eval еще есть куча других способов выполнить php код.

например:
1. $newfunc = create_function('', '};phpinfo();//');
2. preg_replace с модификатором /e
3. обратные ковычки: `ls -lia`
4. и куча других фишек...


  Сведения об ответе

FAriza

15:13, 28th September, 2020

правильный ответ — никогда не использовать eval.
В большинстве случаев подходит это
php.net/manual/en/function.call-user-func.php

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


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться