直接从Electron应用程序连接到数据库有什么风险?

时间:2019-03-23 14:30:34

标签: mysql node.js reactjs electron

我在构建Electron应用程序方面还很陌生,我看到了很多示例,其中Electron应用程序直接连接到远程数据库(在我的情况下为MySQL),所以我开始怀疑这样做的问题是什么。我首先想到的是拥有一个远程API(在Express之上构建),该API可与数据库进行通信,而Electron应用程序(React)将仅利用该API。

有什么建议吗?有想法吗?

谢谢。

1 个答案:

答案 0 :(得分:2)

直接连接到数据库的一个问题是,您必须将数据库凭据嵌入到电子应用程序中,这使得想窥探代码的任何人都可以使用它们。此外,一旦暴露了凭据,您就无法控制任何人对数据库的操作。

这就是为什么您通常会向用户提供自己的凭据,让用户向Web服务器进行身份验证,然后让Web服务器成为唯一可以直接与远程数据库通信的人的原因。然后,您可以完全控制数据库发生的情况,因为您的Web服务器是中介,并且是唯一实际与数据库对话的服务器。

这并不意味着在某些情况下您可能不希望客户直接与数据库对话,因为它实际上取决于您在做什么,数据是什么以及允许的风险敞口。不受信任的代码直接操作数据库中的数据。

请记住,您不能保护客户端中嵌入的凭据。客户端可以发现它们并将其用于其他用途。