Django的视图模板标记对于像rails liquid模板那样的最终用户编辑是否安全?

2024-04-19 19:18:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望最终用户能够在线编辑他们的视图模板,所以它必须是安全的或“监禁”的,这样只有我明确推送到视图页面的对象才可以访问。在

也就是说,我不希望最终用户能够编写python代码,或者计算出我的连接字符串信息等等

django的视图模板标记对于这种类型的使用是否安全?在


Tags: 对象django字符串代码标记视图模板信息
2条回答

Django模板在大多数情况下是安全的,但这是基于您暴露在模板上下文中的内容。在

最大的问题是向模板公开对象,因为所有方法都是传递的。对于传递到模板的最常见对象QuerySet来说尤其如此,并且最易受攻击。在

如果将项目从视图传递到模板

articles = Articles.objects.all()

我可以做以下事情

^{pr2}$

据我所知,Django模板对于这种代码是安全的。在

除了可以在模板中执行的简单循环/分支之外,唯一一种逻辑是注册为模板标记或过滤器的内容。TT或过滤器只能通过后端代码注册。在

在这里您可以看到一个模板标记和过滤器的列表:http://docs.djangoproject.com/en/dev/ref/templates/builtins/?from=olddocs大多数只处理字符串或日期等

干杯

编辑:您一定要确保settings对象在模板上下文中不可用。在

相关问题 更多 >