Во всех языках, в которых существуют функция
eval, возможна инъекция чего угодно через нее. И если в SQL еще можно как-то решить эту проблему при помощи правильного экранирования символов, то в Тьюринг-полных языках отличить зловредный код то безопасного теоретически возможно только одним способом: исполнив его в том же окружении и с теми же входными данными, что и в реальных условиях.
Поэтому большинством
сoding conventions (кстати, как это будет по-русски?) использование eval запрещено полностью. Code review в большинстве крупных компаний и крупных open-source проектах завернет любой pull-request, в котором будет обнаружен eval, и после этого, скорее всего, даже не станет рассматривать последующие реквесты от того же автора.
Еще у многих антивирусов эвристический анализатор заточен на поиск eval в скриптах (включается после того как определен язык).