ejs是Embedded JavaScript的简写
1.创建一个ejs模板
var ejs = require(‘ejs‘); var template = ‘<%= message %>‘; var context = {message: ‘Hello template!‘}; console.log(ejs.render(template, context));
通过ejs.render(template, data)就可以将数据传递给模板,从而渲染展示出页面
需要注意的是:data变量名是自定义的,但是不可以使用:cache,filename,scope,debug,compileDebug,client,open,close这些名称
这些名称是模板引擎设置相关的保留值
2.字符转义:ejs.render()传递数据时会将一些特定的字符进行转义,以防止脚本攻击
var ejs = require(‘ejs‘); var template = ‘<%= message %>‘; var context = {message: "<script>alert(‘XSS attack!‘);</script>"}; console.log(ejs.render(template, context));
打印结果
<script>alert(‘XSS attack!‘);</script>
另:如果你确定传递的数据是可信的,则可以在模板标签中用<%-替代<%=,这样ejs就不会将特定的字符进行转义了
var ejs = require(‘ejs‘); var template = ‘<%- message %>‘; var context = { message: "<script>alert(‘Trusted JavaScript!‘);</script>"}; } console.log(ejs.render(template, context));
这样alert的弹窗效果就出来了
3.自定义ejs模板的标签符号
var ejs = require(‘ejs‘); ejs.open = ‘{{‘ ejs.close = ‘}}‘ var template = ‘{{= message }}‘; var context = {message: ‘Hello template!‘}; console.log(ejs.render(template, context));
时间: 2024-10-09 16:25:15