渲染用户创建的Django模板是否安全?
让用户使用一组预定义的变量制作自己的Django模板,然后在服务器上渲染这个模板是否安全?我只会传递一组非常有限的参数来渲染,所有参数都是字符串.模板将是这样的: hey,my name is {{name}}. 所以,问题是,是否有任何django模板标签可以被滥用来获取用户不应该得到的信息?我最担心的是{%url%}标签. 附: 在填写标题后我注意到this question,但是,我的问题略有不同.我可能根本不允许使用HTML / javascript,使用Textile / Markdown,或者找到一种方法将HTML限制为一组非常基本的标签. 解决方法有三个主要风险:>用户修改数据.例如,渲染{{request.user.kill}}将在值查找期间触发kill()调用.要防止这种情况,您应该在模型代码中设置kill.alters_data = True.所有修改数据的内置模型方法都已标记,因此风险仅与您自己的方法或由写得不好的第三方应用程序提供的方法相关联. 总的来说,只要您了解上述风险并将用户提供的字符串与常规模板分开呈现,我就会说它是安全的.并确保您明确禁止{%debug%},{%include%}. {%ssi%}模板标签,因为它们可以泄露相当敏感的信息.也许你可以安全地玩,只允许变量和过滤器,并完全禁止控制标签. (编辑:岳阳站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- python – 如何从bash脚本中停用virtualenv
- django – 如何在保存之前使用PIL调整新上传的图像大小?
- python – 大型Pandas Dataframe并行处理
- python – 根据另一列pandas数据框提取列值
- __del__上的Python attributeError
- `with canvas:`(Python`with something()as x:`)如何隐式
- 使用Python库绘制共享相同y轴的两个水平条形图
- python – Pandas group by和sum两列
- python – 为什么pow(x,y)的时间复杂度为O(1),而x ** y为O(
- python – pip install hyperopt和hyperas失败