当用户填写表单时,我该如何转义用户输入express.js
?
express.js
默认情况下会这样做吗?我找不到来源。
我必须使用第三方模块express-validator.js
吗?
更新
我弄清楚了转义和验证之间的区别。
我想做的是转义用户输入,但我应该做的是验证它,确保它的格式有效,然后将输出转义到表单,如果它无效,则为用户提供他们输入的确切内容。
<%= some_html %>
会自动逃脱它。<%- some_html %>
将完整地输出html。
你到底需要做什么逃避?Express 将自动为您解码(而不是取消转义)查询字符串,并将其作为req.query
. URL 参数也将自动为您未编码。
如果您需要在渲染时转义包含用户输入的 HTML,您应该通过您的模板引擎来完成。大多数模板引擎,如jade ( = value
) 或handlebars 或mustache ( {{value}}
) 默认情况下会转义HTML,并且需要显式语法才能通过未转义的数据(!= value
在jade 或{{{value}}}
handlebars/mustache 中)。