Если я следую за вами, вы имеете в виду, что вся строка была в базе данных, то есть {$ link} как часть строки.Я не уверен, как именно работает smarty, но мне кажется, что, если он даже сможет это сделать, эта строка должна будет запустить eval ().(Если smarty не делает что-то напуганное, чего мне не хватает, опять же, я не работаю с smarty)
Это означает, что у вас ОЧЕНЬ небезопасная настройка.Если ваша база данных подвергнется инъекции SQL, весь ваш сервер может быть скомпрометирован.
Запуск этих файлов из файла, который был жестко запрограммирован в приложении, не является серьезной проблемой безопасности, поскольку вы можете контролировать код, вызывающий.tpl, и у вас есть контроль над самим .tpl.Это «безопасное» использование eval, так как вам уже нужен серьезный доступ к серверу, чтобы иметь возможность его использовать, такой доступ, который был бы причиной его использования.
Но как только вы получаете доступ к этим данным из базы данных, предположительно с помощью какой-то системы администрирования, которая позволяет вам добавлять новые динамические шаблоны, вы создали окно в вашу систему, в которое злоумышленник может проникнуть.