首页 > 解决方案 > 生成安全的可共享 URL 以访问 Web 应用程序 (NodeJS)

问题描述

我正在 NodeJS + Express 中构建一个应用程序,团队可以在其中与一个和另一个共享信息并聊天(有点像内部消息传递论坛)。

有时,团队的客户需要逐个查看和编辑其中一些存储的信息(例如,客户提出问题并希望使用我的应用程序与团队来回发送消息)。在这种情况下,我不希望客户必须注册一个帐户。

因此,我想知道生成 URL 的最安全策略是什么,任何拥有该 URL 的人都可以在单个文档的范围内查看和编辑文档/将数据发布到我的应用程序,而无需登录

(我看过一些关于这个主题的帖子,但它们已经很老了,不关注这个具体案例。)

标签: node.jsexpresssecuritycryptographyauthorization

解决方案


首先,我完全可以理解好处,但这仍然不是一个最佳的想法。但是,我想总结一些有助于您开发的想法和建议:

  • 像这样的链接不应该能够执行关键操作或读取高度敏感的数据。
  • 访问应该是唯一的和短暂的。例如,客户可以输入他的电子邮件地址或手机号码并接收访问代码。
  • 如果您生成随机 URL,它们应该以安全的随机方式生成(例如, uuid提供了一种创建加密强随机值的方法)。

如果我必须设计这个,我会提供尽可能少的功能。此外,管理员在发布文档时必须输入受信任的电子邮件地址和/或手机号码。然后将带有 UUIDv4 的 URL 发送到该频道,当客户单击该链接时,如果可能,他会在单独的频道上获得一个短暂的访问代码(如果只配置了一个,则在同一频道上)。这样可以防止未经授权的人访问文档的危险,以防客户出于愚蠢而转发原始 URL。


推荐阅读