【发布时间】:2018-01-31 13:00:24
【问题描述】:
我将 Loopback 3.x 与 loopback-connector-mongodb 3.x 一起使用
显然,许多内置端点可以采用可以定义为 JSON 的过滤器参数,它可能包含复杂的过滤器条件,如 order、where、skip 等。例如:
GET /api/activities/findOne?filter={"where":{"id":1234}}
然而,虽然 Loopback 使用 ORM,但似乎请求参数是在没有任何预处理或转义的情况下传递给 mongodb 的。 我找不到任何可以帮助我确保值安全的 Loopback API 方法。 例如,如果用户将 Javascript 放入 where 过滤器,或添加不受支持的字符(例如 null char),则应用会抛出异常并退出。
我确定我在这里遗漏了一些东西。使 filter={...} 中传递的值安全的最佳方法是什么? 有没有内置的 API 方法呢? 如果没有,有没有我可以使用的节点模块?
【问题讨论】:
-
使用
joi等模式验证器来验证通过的过滤器 -
谢谢! Joi 很酷,我一定会用它。
标签: mongodb loopbackjs strongloop