Это, вероятно, довольно сложная (но интересная, если вы в теме) задача, потому что она включает в себя создание небольшого парсера PHP, который может безошибочно идентифицировать любой вызов функции или вызов метода (потому что, если вы пропустите один, вы ' снова ввернут / взломан / ...), а затем проверьте, все ли токены идентификаторов совпадающих функций находятся в вашем белом списке, и в противном случае откажитесь в оценке. Для генерации вашего парсера вы можете проверить PHP_ParserGenerator , который, к сожалению, больше не поддерживается, или lemonPHP / JLexPHP , который может быть более актуальным, но вам нужно использовать Java для генерации парсера.
Из-за всего этого довольно утомительная задача, большинство людей прибегают к использованию собственного (готового) языка шаблонов, который похож на PHP, но не идентичен.
Среди популярных шаблонных движков PHP:
Больше можно найти здесь и здесь