在 ejs 模板引擎的上下文中转义和未转义值的含义?
Meaning of escaped and unescaped value in context of ejs templating engine?
<%= 将值输出到模板中(HTML 转义)
<%- 将未转义的值输出到模板中
这两行具体指的是'escaped'和'unescaped'这个词?
让我给你举个简单的例子。
假设您的数据库中存储了数据并希望在视图 ejs 页面中呈现它。示例:
x = "<p>This is a paragraph</p>"
现在将这些行添加到您的 ejs 页面中
<%= x %>
<%- x %>
你会看到这个
<p>This is a paragraph</p>
This is a paragraph
如您所见,<%=
标签转义了 html 标签,并且不让它们被翻译。
<%-
标签的情况正好相反,其中 html 被翻译(未转义),您会看到您想要的结果。
出于安全原因,<%=
标记会转义该代码。如果您想使用 <%-
标签,您必须确定您存储在数据库中的数据并希望稍后呈现它们。
想想这个数据
x = "<script>alert('You are in danger!')</script>"
并尝试以这种方式呈现它
<%- x %>
你猜怎么着!您将看到一条很好的警报消息,通知您如果您不确定自己的数据,您就会处于危险之中。
希望对你有所帮助。
<%= 将值输出到模板中(HTML 转义) <%- 将未转义的值输出到模板中
这两行具体指的是'escaped'和'unescaped'这个词?
让我给你举个简单的例子。
假设您的数据库中存储了数据并希望在视图 ejs 页面中呈现它。示例:
x = "<p>This is a paragraph</p>"
现在将这些行添加到您的 ejs 页面中
<%= x %>
<%- x %>
你会看到这个
<p>This is a paragraph</p> This is a paragraph
如您所见,<%=
标签转义了 html 标签,并且不让它们被翻译。
<%-
标签的情况正好相反,其中 html 被翻译(未转义),您会看到您想要的结果。
<%=
标记会转义该代码。如果您想使用 <%-
标签,您必须确定您存储在数据库中的数据并希望稍后呈现它们。
想想这个数据
x = "<script>alert('You are in danger!')</script>"
并尝试以这种方式呈现它
<%- x %>
你猜怎么着!您将看到一条很好的警报消息,通知您如果您不确定自己的数据,您就会处于危险之中。
希望对你有所帮助。