使用express JS进行JSON漏洞防护

标签 json node.js security express

我想知道如何将 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/

相关文章:

python - 如何从 Python 中的 Json 计算值

ios - 如何将 JSON 中返回的图像 URL 显示为 UITableViewCell 的缩略图

javascript - mongodb 模式中具有不同对象类型的数组

javascript - Sequelize : Query same join table with different conditions

security - 隐藏特定用户组的表单选项卡

java - 在 JSONArray 中解析 JSONArray

ios - dispacth_sync与dispatch_async:iOS JSON解析

javascript - Nodejs 服务器上的 Jointjs 错误 - 未捕获的 ReferenceError :Joint is not defined

c# - .NET 安全内存结构

mysql - codeigniter - 如果 ip 超过 x 次尝试,则阻止 ip