【发布时间】:2016-01-05 05:09:06
【问题描述】:
我有一个 MongoDB 的查询接口,并通过 HTTP 请求从浏览器向 NodeJS 发送查询。 查询以字符串形式发送,可以是这样的:
var query = '{_id: ObjectId(\'536b07935c89be214c000009\'), "date": ISODate("2012-12-19T06:01:17.171Z"), mail: /test/i}'
我的问题,我怎样才能安全地评估这个字符串以便将它发送到 MongoDB NodeJS 客户端?
eval 不是一个选项(在 MongoDB 和 NodeJS 上),因为这是面向消费者的应用程序的一部分。
我对通过 HTTP 传递查询并在服务器上正确执行它们的其他安全解决方案持开放态度。
【问题讨论】:
-
代码中
query的值是多少?它只是一个包含您在上面粘贴的值的字符串吗?您的代码究竟是如何失败的?错误信息是什么?您需要提供更多信息,以便人们为您提供帮助。 -
@mbaird 已修复,无法显示我尝试过的代码,因为它崩溃了,而且我与此解决方案无关
-
您是否使用任何特定的 MongoDB API for Node,或者您不在乎使用哪一个?
-
@JohnZwinck 我目前正在使用官方的 mongodb 包,但我不在乎,只要我可以在前端编写标准查询并获得正确的结果。另外,我希望版本支持尽可能广泛