如何使用 DOMPurify (Node/Express) 在 res.render 中清理服务器端渲染的 HTML

How to sanitize server-side rendered HTML in res.render using DOMPurify (Node/Express)

提问人:tbd_ 提问时间:1/20/2023 最后编辑:tbd_ 更新时间:1/21/2023 访问量:303

问:

我有一个服务器端渲染的 NodeJS Express 应用程序。它使用视图引擎来为带有提供的道具的 html 提供服务。res.render('pathToMyHtml', props)

我想确保我的 HTML 使用 isomorphic-dompurify 库进行清理,以防止 XSS 攻击。

因为我使用一堆页面,我该如何创建中间件以确保每次调用时我的 HTML 都被清理?res.renderres.render

我试过了什么

我目前正在调用很多次而不是 html 本身。比如:DOMPurify.sanitizeprops

const props = {
  firstName: "Joe",
  lastName: "Smith"
}
res.render('myHtmlPage', DOMPurify.sanitize(props));

但我想清理整个 HTML 有效负载,而不仅仅是道具。

编辑:我发现了这个,但似乎很笨拙,因为它涉及更改原型方法......我很惊讶 Express 没有 API 来做到这一点!

节点 .js 速成 XSS Dompurify

评论


答: 暂无答案