[XSS]Expressjs 阻止 运行 脚本表单 POST 请求

[XSS]Expressjs prevent run script form POST request

我是 ExpressJs 的新手。我对已发布的 javascript

有疑问
app.get('/nothing/:code',function(req, res) {
    var code = req.params.code;
    res.send(code)
});

如果我 POST javascript 标记,它会 运行。有什么办法可以避免吗?

有很多可能 HTML sanitizers out there (as simple search on NPM 会给你一个清单,你可以在你的 nodejs 代码中使用。

最简单的方法是简单地使用内置的 "escape" 函数,但这并不能阻止许多 XSS 攻击。

app.get('/nothing/:code',function(req, res) {
   var code = escape(req.params.code);
   res.send(code)
});

更好的解决方案是使用为此目的设计的库。例如,如果您使用了 santizier 库 (Google Caja's HTML sanitizer packaged for node):

var sanitizer = require('sanitizer');
...
app.get('/nothing/:code',function(req, res) {
   var code = sanitizer.sanitize(req.params.code);
   res.send(code)
});