我想知道如何将 JSON 漏洞保护与express.js 结合使用。
http://haacked.com/archive/2008/11/20/anatomy-of-a-subtle-json-vulnerability.aspx
问题是我曾经从 Controller 编写 res.send(jsonObj) ,它将直接将数据发送到客户端。 但我想拦截响应并用一些东西修改它然后发送给客户端。然后客户端可以撤消修改并检索原始数据。
我看到了 res.format 函数,但它不能满足我的需要。
最佳答案
我使用 res.json
而不是 res.send
来发送 JSON,因此我修改了您答案中的代码:
app.use(function (req, res, next) {
res.json = function (data) {
var strData = typeof data == 'object' ? JSON.stringify(data) : data;
strData = expressOptions.jsonPrefix + strData;
res.set('Content-Type', 'text/json');
res.send.call(res, strData);
};
next();
});
虽然我“只是为了确定”而实现了这个,但我不认为这是一个严重的漏洞。如果您阅读this ,链接自 this (我认为这就是您编写 Express 中间件的灵感来源),似乎 JSON 漏洞在“现代”浏览器中并不存在,例如早在 IE 6 和 FireFox 3 中。
所以我不知道为什么AngularJS这些天告诉人们实现这种保护。如果有人在评论中启发我,我将不胜感激! :)
关于使用express JS进行JSON漏洞防护,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33229408/