javascript - 我如何为我的 Electron 应用程序创建后端

标签 javascript node.js security electron backend

所以我正在制作一个 Electron 应用程序,并且正在尝试整合安全性。由于 Electron 允许使用 DevTools 并且可以轻松解压,因此我正在研究后端。我不太确定应该如何制作后端并访问它而不泄露身份验证 token 和其他 secret 。所以我的问题是:

  1. 如何制作一个可与 Electron 配合使用的后端?
  2. 如何隐藏身份验证 token ?

我真的没有任何代码可以对此表示抱歉。如果您需要澄清任何内容,请告诉我。

最佳答案

  1. 由于 Electron 应用程序基本上是一个打包到应用程序中的网站,我建议使用基于 API 的后端。然后您可以使用fetch API在 JavaScript 中与后端交换数据。

  2. 就像使用任何网络应用程序一样。通过发布到您的 API 后端让用户登录。然后您的后端生成并返回 cryptographically secure session token ,然后存储在 Electron 前端的 localStorage 中。然后, session token 可用于访问后端服务器上的用户信息(通过进一步的 API 请求)。因此,您的服务器将 session token 与用户关联起来,这样用户就可以使用 session token 证明自己的身份,而不是每次都将密码发送到您的服务器。

https://en.wikipedia.org/wiki/Session_%28computer_science%29

可以提取存储在任何前端的 key 。有些让它变得容易,例如网站,有些让它变得更难,例如桌面应用程序,但只要有足够的耐心,有人最终可以提取它。

当您有一个 API key 但不希望客户端拥有时,让客户端请求您的 API 后端,然后您使用服务器上的 key 请求其他 API。这样,客户端永远不会看到 key ,因为他通过您的服务器请求第 3 方 API。所以只有您的服务器拥有该 key 。这样您的服务器就能够控制对第三方 API 的请求,甚至在您的应用程序的用户滥用您的服务时限制或禁止他们。

enter image description here

关于javascript - 我如何为我的 Electron 应用程序创建后端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64280506/

相关文章:

javascript - 防止 Node 类型错误崩溃的应用程序

php - 设置数据库 'user'表用于密码恢复

javascript - 前端js框架可以用于非单页应用程序吗?

node.js - 使用 connect-multiparty 上传的文件返回空对象

javascript - 为什么这个比较函数返回错误的结果?

node.js - npm 脚本的时间/性能指标

php - PHP 中的安全身份验证

php - 如何在PHP中生成大量 session ID?

javascript - Leaflet.PolylineMeasure 在新环境中不起作用

javascript - 使用内容创建 Kotlin/JS WebComponent