IT用語集 › セキュリティ › SSTI

SSTI

セキュリティ Svenska → 更新: 2026-10-22

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のラボ演習が、権限昇格の流れを学ぶのに適している。

← 用語集に戻る