Node.js 生成用于访问web应用程序(NodeJS)的安全可共享URL

Node.js 生成用于访问web应用程序(NodeJS)的安全可共享URL,node.js,express,security,cryptography,authorization,Node.js,Express,Security,Cryptography,Authorization,我正在NodeJS+Express中构建一个应用程序,团队可以在其中彼此共享信息并聊天(有点像一个内部消息论坛) 有时,团队的客户需要根据具体情况查看和编辑一些存储的信息(例如,客户提出问题并希望使用我的应用程序与团队来回发送消息)。在这种情况下,我不希望客户必须注册帐户 因此,我想知道生成URL的最安全策略是什么,任何具有URL的人都可以在单个文档的范围内查看和编辑文档/将数据发布到我的应用程序,而无需登录 (我已经看过一些关于这个话题的帖子,但是它们都很老了,没有关注这个具体的案例。)首先,

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

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

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


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

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

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

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

一个表面,看起来像Wiki类型的设置。