IT-словарь › Безопасность › SSTI

SSTI

Безопасность Svenska → Обновлено: 2026-10-18

Server-Side Template Injection: пользовательский ввод попадает в шаблонизатор как код, а не как данные — нередко это сразу RCE.

Классический пример на Jinja2: render_template_string("Hello " + name). Если передать name = {{ 7*7 }}, ответ будет «Hello 49». Дальше можно дойти до {{ config.__class__.__init__.__globals__['os'].popen('id').read() }} — то есть до доступа к оболочке. Аналоги есть у Twig, Freemarker, Velocity, Smarty, Handlebars, ERB.

Защита: разделять шаблон (статический файл) и данные (параметры) и никогда не рендерить пользовательские строки как шаблоны. Песочница шаблонизатора помогает, но её неоднократно обходили. У PortSwigger есть хорошая серия лабораторных по эскалации.

← Назад к словарю