如何使用电子安全地与数据库通信



我正在创建一个电子应用程序,该应用程序连接到数据库并执行POST和GET请求以检索数据并将数据插入其中,问题是在代码中我定义了我的数据库uri(im使用mongodb(

const uri = "mongodb+srv://<myusesrname>:<mypassword>@cluster0.wqbiu.mongodb.net/query?retryWrites=true&w=majority"

就像上面的例子一样,但如果我把与数据库的连接以及凭据打包,如果有人打开app.asar文件并查看server.js文件,我该如何解决这个问题?我不想有任何安全漏洞,无论是对我还是将使用我的应用程序的人,提前感谢您的任何回答:(

一个需要安全连接的应用程序无法将任何用户名或密码硬编码到其代码中。

取而代之的是使用身份验证和授权程序。

身份验证用于验证用户。IE:他们就是他们所说的自己,通常通过使用某种类型的登录表单来实现。

授权用于验证登录用户是否被允许访问请求的资源。这个用户可以从数据库中检索所有用户的电子邮件地址列表吗。

作为一个粗略的指南,用户将使用他们的用户名和密码登录。如果你愿意,你也可以在这里使用OpenID。一旦用户"登录",您就可以设置cookie或会话,并将会话id保存在针对该用户的数据库中。当然,所有这些都是通过HTTPS完成的。

有各种方法来控制会话的有效性,例如但不限于每次用户点击服务器时刷新到期日期/时间,如果用户没有与服务器交互超过X分钟则自动超时,等等

在你的应用程序中,用户可以随时尝试与数据库交互,但如果用户没有登录,服务器可以返回适当的响应并提示用户登录。某种形式的API在这里是真正的路要走。

如果用户已经登录,那么下一步是授权用户请求,确保他们在发送回复之前能够执行他们的请求。如果他们没有被授权访问资源(例如:编辑另一个用户的帖子(,则会返回一个适当的响应,表明是这样

正如你所看到的,保护你的应用程序需要一些工作,但不这样做的结果可能会对你和你的用户造成毁灭性的影响。

最新更新