有什么安全的方法可以屏蔽将呈现给用户的 url 吗?

Is there any safe way to mask an url that will be rendered to the user?

问题如下:

我有多个publicurl,例如:

http://www.example.com/randomHash

问题是我想与一组特定的用户共享它,但我不希望他们能够与其他未经授权的人共享 link。

我想到的第一个解决方案是创建一个界面来处理身份验证并屏蔽原始 url,向用户显示我的身份验证域。问题是用户可以很容易地找到 url 而我找不到如何做到这一点的参考。这行有什么解决办法吗?或者其他方法更适合?

假设 URL 是可公开访问的(即不在任何形式的身份验证之后),这无法解决。原因很简单,URL 被发送给客户端,因为您不能信任客户端,因此无法保证客户端会保证 URL 的安全。

此外,值得记住的是 URL 通常不被视为秘密,这意味着代理和缓存等产品将记录 URL 并且日志可用于管理员等。最后,在大型组织中,像 urldefense 这样的工具将从电子邮件中删除 URLs 并用他们自己的 URLs 替换它们,以确保任何人点击 link ] 将通过他们的系统。这意味着会有重定向到您的 URL.

的解决方案

对此的典型解决方案是对用户进行身份验证,并有一个解决方案可以在任何未通过身份验证的用户尝试直接访问 URL 时将其重定向到登录屏幕。具体的实现很大程度上取决于您当前的环境、编程语言、框架等。