如何在没有用户登录的情况下通过授权保护网站?

How to protect a website with authorization without a user signing in?

场景是 登录用户 准备一些 material 并将其发送到多个电子邮件地址。在每封电子邮件中,都有一个 link 到网页,访问者可以在其中阅读内容并提出建议。

由于我无法要求访问者自行注册,因此访问的页面未经授权就暴露了。不过,需要一个有效的 guid 才能访问现有页面。

我的问题是是否有一种好的方法可以为未登录的用户提供授权。发送到他们的电子邮件帐户的 guid 令牌是否是我可以提供的最好的保护,因为他们懒得自己手动登录?

我拒绝了跟踪 IP 号码的想法,因为我不能保证他们不会从不同的位置访问该网站。

您可以使用 Shared Access Signature 方法。 Azure 使用它来获取存储访问权限(使用过期时间等策略),OneDrive 使用类似的方法来共享文件等。 我认为(你提到了 Azure)你甚至可以为此使用 Azure Storage SAS 机制。没有过期和其他政策,只有一个 GUID,我认为不是理想的解决方案。

我猜大多数用户会在默认浏览器中打开 link。比有一个 js 库 Fingerprint 允许识别用户唯一的浏览器实例。您可以将此库注入目标网页,用户将从他们的电子邮件客户端访问该网页(通过单击 link)。所以存储guid加上用户指纹可以提供一些简单的"authorization".

一般来说,存储 guid 和发送此 guid 的电子邮件是更通用的解决方案。但并不安全,因为任何人都可以窃取 guid 并用于模拟。