Проблемы безопасности eval
-извлечения кода с eval в PHP такие же, как в Javascript: если вы оцениваете какой-то код, вы должны быть уверены, откуда он и что он содержит.
Последствия для безопасности могут быть даже больше, поскольку PHP имеет доступ к вашей базе данных (среди прочего) - это означает, что его можно использовать для кражи / повреждения почти любой информации, на которую опирается ваше приложение!
В Javascript они говорят, что "eval is evil "; в PHP это так же верно, как и в Javascript.
Теперь о конкретных ситуациях, в которых вы не можете избежать использования eval
... Ну, в течение примерно 4 лет разработки PHP в качестве моей повседневной работы, я не помню, чтобы когда-либо использовал eval
в своем собственном коде ^^
Тем не менее, и пример ситуации, когда вам нужен eval
, будет, например, когда вы храните некоторый код в базе данных, а не кэшируете его в файлах (который может быть включен) - это происходит с некоторыми CMS, которые позволяют вводить части кода PHP в разделе администрирования, например.