单页web应用程序中的安全数据库查询

Secure db queries in single page web app

本文关键字:安全 数据库 查询 web 应用程序 单页      更新时间:2023-09-26

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

当然,这确实是不安全的模式。所以我应该编写某种REST-full API服务,通过URL从服务器查询数据,然后服务器查询DB。但这真的很不方便,因为我需要多写两三倍的代码(第一个查询是针对我的服务器的,第二个查询是DB的,也许还有两个查询之间的转换器)。另外,我认为对我的服务器的API调用看起来和对DB的API调用几乎相同。

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

那么,从安全性和易编码性的角度来看,从DB请求客户端应用程序中数据的最佳方式是什么?

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

我在Facebook上找到了一个带有Relay的GraphQL,它最好地解决了这个问题。