我是ExpressJs的新手。我有关于发布javascript的问题
app.get('/nothing/:code',function(req, res) {
var code = req.params.code;
res.send(code)
});
如果我发布javascript标记,它会运行。有办法防止这种情况吗?
答案 0 :(得分:1)
有很多可能的HTML sanitizers(因为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)
});