JS 将请求载荷中带有特殊字符的数据发送到服务层,我们需要转义吗?

Posted

技术标签:

【中文标题】JS 将请求载荷中带有特殊字符的数据发送到服务层,我们需要转义吗?【英文标题】:JS posts data with special characters in the request payload to service layer, do we need to escape? 【发布时间】:2021-01-13 19:15:55 【问题描述】:

我被要求对我们的应用程序如何将数据发布到服务层进行完整性检查。

假设下面的场景

前端post使用 content-type: application/json

将此 json


  "description":"\n  das!!!'/.xtest",
  "topic":"test"

从安全角度来看,在发送之前是否需要转义该 json 请求负载中的特殊字符?

一般来说,发布或放置带有特殊字符的 json 的最佳做法是什么?

我一直在寻找答案,但尚未找到推荐或广泛认可的标准。

请,任何意见都非常感谢!

【问题讨论】:

【参考方案1】:

从安全角度来看,在发送之前是否需要转义该 json 请求负载中的特殊字符?

没有。

一般来说,发布或放置带有特殊字符的 json 的最佳做法是什么?

您无需做任何特别的事情。只要您发送的是有效的 JSON,它就已经被充分转义了。

当然,就像来自客户端的任何其他内容一样,该 JSON 的 内容 应该受到怀疑,并且只能以受限制的方式使用(例如,您不会接受由用户 A 并在用户 B 的浏览器中将其输出为 html),但这不是 JSON 特有的。

【讨论】:

以上是关于JS 将请求载荷中带有特殊字符的数据发送到服务层,我们需要转义吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Json 请求中带有 unicode 的值转换为简单字符?

数据表:标题中带有点 (.) 的列未正确显示

通过 POST 请求将数据从 node.js 服务器发送到 node.js 服务器

通过 POST 请求将数据从 node.js 服务器发送到 node.js 服务器

如何将 JQuery AJAX 请求中的数据发送到 Node.js 服务器

JS——AJAX