【问题标题】:local client server node secure authentication本地客户端服务器节点安全认证
【发布时间】:2018-07-08 21:01:25
【问题描述】:

我目前正在开发一个基于 MEAN 堆栈并设计为在本地运行的软件套件(此应用不会部署在网络上)。

下面提到的节点应用程序将使用 pkg(npm 包) 编译成可执行文件。我尚未确认此软件包是否为我的节点应用程序提供任何安全性。

项目架构如下:

Architecture

  • 在 locahost 端口 3000 上运行的节点客户端
  • 在 localhost 端口 5000 上运行的节点 Api
  • 默认端口 27017 上的本地 mongodb。
  • 用于记录数据以传输到数据库的本地桌面应用程序。

我需要满足这些最终要求:

  • 用户不应直接访问数据库,只能查看 通过他们的本地客户端获取数据。
  • api 应该只与我的客户端、我的应用程序和我的数据库通信。需要有某种机制来验证 api 的客户端。

所以,我想我需要一种在这些组件之间建立安全连接的方法,而无需将凭据保存在应用程序内的文件中。

我了解如何向 Mongodb 添加身份验证,但我想不出一种方法来避免在我的代码中必须以明文形式包含这些凭据。对于客户端服务器验证的 .crt 和 .key 文件,我的情况相同。 如果我遗漏了一些明显的东西,请原谅我,这对我来说已经进入了隧道视野阶段,我只需要一些新鲜的眼睛。

如果有人能指出我正确的方向,我将不胜感激。

谢谢。

【问题讨论】:

    标签: node.js mongodb security https client-server


    【解决方案1】:

    我建议使用 json web token 进行身份验证。参考:https://jwt.io/ 如果您在 google 上进行快速搜索,您会发现该主题的精彩文章。

    【讨论】:

    • 我喜欢 JWT 的外观,非常好,但是除非我错过了什么,否则我仍然需要在我的项目中有一个文件来存储私钥,并且代码仍然是本地的并且可能可读(同样,我不知道 veit 的 PKG 是否提供任何安全优势)。是否可以通过在代码或文件中指定密钥来实现此级别的客户端服务器身份验证。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多