从反应前端向羽毛服务传递查询是一种很好的做法吗?

时间:2018-10-31 16:09:02

标签: javascript reactjs mongodb feathersjs querying

我在React JS中使用rematch(https://github.com/rematch/rematch),并在后端使用其Feathers。如果我想在特定条件下从数据库中获取记录,则可以在React代码的API调用中传递查询。 例如。

const empData = await employeeService.find({
    query: {
        $and:[
            {employeeId: payload.empIId},
            {name:"ABC"}
        ]
    }
});

这直接将查询传递给自动生成的羽毛服务,并且也向我提供了预期的结果。

我的问题是,从前端传递这些类型的查询(可能比这更复杂)是一种好习惯吗?请详细说明答案(优点和缺点等)

2 个答案:

答案 0 :(得分:3)

我们成功且广泛地在多个项目中做到了这一点。它创造了最大的灵活性。可以在客户端中实施更改,而不需要在客户端和服务器中进行更改。

这应该与不信任客户端的服务器结合使用。服务器应清理和限制输入查询的速率,以确保客户端没有收到不应接收的任何内容。

答案 1 :(得分:0)

让客户端直接执行查询通常不是一个好主意。您事先不知道该查询,这意味着任何人都可以发布可操纵的查询,该查询将束缚您的数据库,从而有效地DDOS-您。由于您不检查输入内容,因此无法防御此类攻击。

验证每个系统边界上的输入始终是一个好主意。