| 常见引擎 | Jinja2、Twig、Freemarker、Velocity、Thymeleaf |
|---|---|
| 成因 | render_template_string(用户输入) 或模板路径可控 |
| 防护 | 固定模板文件 + 变量参数;收敛表达式能力 |
风险与安全对比(Jinja2)
风险与安全对比(Jinja2)
风险:render_template_string('Hello ' + name)
安全:render_template('hello.html', name=name)
模板内容始终来自代码仓库,绝不来自请求需要用户自定义展示时,使用受限占位符替换而非直接暴露模板引擎能力。