【问题标题】:Stringify object for qs parser为 qs 解析器字符串化对象
【发布时间】:2015-07-13 01:02:59
【问题描述】:

Express js 使用qs parser 将查询字符串解析为对象。是否有一个库可用于相反的前端应用程序?我希望能够在前端以对象形式编写一个 mongo db 查询,并在发出请求之前将其自动解析为 qs 解析器所期望的格式。

【问题讨论】:

    标签: mongodb parsing express query-string stringify


    【解决方案1】:

    偶然发现了这个问题,我想你不再需要它了,但我希望这对最终来到这里的其他用户有所帮助:

    graphQL。它是一个开放标准,可以让您以灵活的方式查询后端 api。

    Mongodb 甚至开箱即用地支持它,而且它是基于权限的,所以不用担心前端用户侵入您的数据库(您当然应该正确配置这些权限以限制对特定资源的访问)。

    阅读更多https://docs.mongodb.com/realm/graphql

    【讨论】:

      【解决方案2】:

      我希望能够在前端以对象形式编写一个 mongo db 查询

      您绝对应该不要这样做,除非您基本上可以为您的网络应用程序的任何用户提供一个开放的 shell 来对您的数据库执行任何他们想要的操作。

      话虽如此,我在 bower.io 中找到了这个:

      https://github.com/fernandofleury/query-object

      更多:

      http://bower.io/search/?q=qs

      【讨论】:

      • 攻击者不是已经通过以字符串形式发送查询而拥有完全相同的能力了吗?我们所有的查询都只命中 GET 路由,有人甚至可以这样做造成任何损害吗?
      • 正确,所以这应该与现有的没有什么不同。使用 express,与您的等效查询是 GET /users?q[drop]=students。编写对象并解析它们应该与以字符串形式写出等效查询一样安全
      • express 不会自动将 ?q[drop]=students 之类的内容转换为盲目执行的 mongo 查询,您必须自己实现,这同样是个坏主意。你应该设计你的GET /users API,让它唯一能做的就是获取用户。
      猜你喜欢
      • 2020-03-31
      • 2012-05-17
      • 2013-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多