无法解析对 Kinvey 后端的批量 JSON POST 请求

Unable to parse bulk JSON POST request to Kinvey back-end

当我尝试解析这个时 JSON:

[
{"name":"name1","id":12},
{"name":"name2","id":11},
{"name":"name3","id":111},
{"name":"name4","id":1115}
]

在对 Kinvey 的 BAAS 的 POST 请求中,我收到错误:

{
  "error": "Unable to parse the JSON in the request"
}

Here 是我后台(Kinvey)的截图。

Here是我的请求(邮递员)的截图。

当我发送单个实体 {"name":"name1","id":12} 时,它不会抛出错误并将其按应有的方式放置在后端。图片在这里:Kinvey worked

作为一项安全措施,某些框架不会将顶级数组解析为 JSON。这样做会在某些较旧的浏览器中启用漏洞。

漏洞利用是这样的:

  1. 写一些 Javascript 来替换 Array,用一个函数将其内容存储到其他变量。

  2. 在您的恶意站点中,使用 <script> 标记包含对另一台服务器上的某些特权(JSON 数组)资源的请求。

  3. 诱骗对该服务器有权限的用户访问您的网站。

所请求的资源将从良性服务器中提取,作为脚本加载到用户的浏览器中,并进行评估——但数组将由您的恶意替代函数处理,您可以随心所欲地使用它。 cross-site request forgery.

的一种形式

更新

关于问题 "how do I upload multiple entities to a Kinvey collection?",答案在 Kinvey documentation 中:

"For bulk upload, see the CSV/JSON import feature on the Kinvey console (navigate to the collection, click Settings, then click Import Data)."

使用 Kinvey 中的 POST 函数一次只能 POST 一个实体。所以这不是 JSON 解析错误。

此外,您应该考虑通过针对您正在开发的移动平台的官方 Kinvey SDK 调用 Kinvey,而不是使用 REST API。这样,您就可以利用许多其他功能,例如缓存、离线同步、隐式身份验证等。