[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)
});
我是 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)
});