在单页面Web应用程序中保护数据库查询

时间:2015-11-05 01:38:52

标签: javascript security graph-databases arangodb

我正在使用ArangoDB创建单页面Web应用程序以进行存储。 Arango提供了访问和操作数据的绝佳方法。其中一个是经典的JS API。在客户端JS中编写直接的DB查询会很容易,这将直接查询DB。所以中间没有服务器应用程序。

当然,这确实是不安全的模式。所以我应该编写某种REST-full API服务,通过URL查询来自服务器的数据,然后服务器查询数据库。但这确实很不方便,因为我需要编写两到三倍的代码(对我的服务器进行第一次查询,对DB进行第二次查询,以及两次查询之间可能还有一些翻译)。另外,我认为我的服务器的API调用看起来与DB的API调用几乎相同。

我不想完全抽象,因为应用程序应该很复杂,并且会有很多类型的API请求,这只会带来错误并节省更多时间。

那么,首先从安全性,第二,编码的简易性,从DB请求客户端应用程序中的数据的最佳方法是什么?

2 个答案:

答案 0 :(得分:1)

我真的建议编写REST API调用(或通常是URL调用)来访问您的数据。可以访问和操纵客户端上运行的任何内容或来自客户端的任何流量。这带来了身份验证和SQL调用。 你想要什么? DB客户端认证?如果加密,则需要在客户端解密。 SQL调用 - 如果您构建并传输它们,客户端可以操纵它们以使用任何值获取/更新任何数据。真的没有简单的方法.. 所以 - 为了安全 - 坚持这里的模式..

答案 1 :(得分:0)

我在Facebook上找到了一个GraphQL Relay来解决这个问题。