由用户生成为Ruby和.NET所用的安全模板
时间:2011-12-12
来源:cnblogs
大多数模板引擎都愿意尽可能给用户赋予更多功能,而 Liquid 则不同,它的设计哲学是要限制用户所能做的事情。目的是要让最终用户能够创建自己的模板,而不需要陷于服务器的安全问题。
Liquid 最初是为电子商务平台 Shopify 创建的,从 2006 年就已经开始正式使用。Tim Jones 使用 DotLiquid 这个名字把这个引擎迁移到了 .NET 上。这两个版本都不允许模板访问底层平台,从而保证了安全性。它们使用的是高度受限的指令,仅限于使用名为“过滤器(filters)”的简单函数以及条件语句。两个版本的 Liquid 标记语法都一样。
渲染模板的过程包括两个步骤。首先,源代码会被解析为可重用的 Template 对象。然后,在需要的时候会调用模板的 render 方法。由于模板无法访问 Ruby 或者 .NET 的变量,所以需要使用数据字典或者键值对(key-value pairs)来传递这些变量。
开发者可以创建他们自己由用户支持的过滤器。新的过滤器可以暴露给特定模板或者注册给所有模板使用。不管采用哪种方式,它们本质上都是会接受并返回字符串的函数。对于新的标签块则有些复杂,需要初始化(initialization)和渲染(rendering)两个阶段。幸运的是,大多数琐碎问题都是通过对基类的调用处理的。
Jürgen Bäurle 还向我们展示了如何创建 DotLiquid 针对 SharePoint 的特定扩展。
查看英文原文:Safe User-Generated Templates for Ruby and .NET
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28