0

What is considered best practice to generate a URL that is publicly accessible, but shared via a side channel, so that it is in practice private to the group sharing it?

Something like:

http://example.com/club/XX-XX-XX-XX
http://example.com/club/YY-YY-YY-YY

Where XX-XX-XX-XX shared among one group, and YY-YY-YY-YY is shared by another group. If you have one valid code, it should not be easy to guess other valid codes.

No other security is required for the URL.

4

6 回答 6

3

GUIDs are always a good choice for unique IDs and are very easy to generate (but look ugly)

于 2009-03-11T16:15:24.903 回答
0

考虑使用 Amazon S3,它们有时间限制的公开 URL。

于 2009-03-11T16:15:53.453 回答
0

我建议生成一个 UUID。如果您的后端是 Java,您可以使用 Java 的 java.util.UUID 和 URLEncode/Decode 其文本表示。如果您使用的是 ASP.NET,我敢肯定 .NET 中有一个等价物。

于 2009-03-11T16:16:19.113 回答
0

要生成 URL 的路径部分,请使用某种形式的哈希(SHA1 可以)。当然是随机的。chmod 文件所在目录到 711 ( rwx--x--x)

于 2009-03-11T16:16:47.680 回答
0

一个随机的字母数字字符序列就可以完成这项工作。从 26 个小写字母、26 个大写字母和 10 个重复十几次的数字中选择的字符应该足以满足您的需要。

于 2009-03-11T16:17:52.170 回答
0

您在复杂性和可读性(甚至是可记忆性)之间进行权衡。GUID 提供了一个“独特”的代码,如前所述,它很容易生成,但可读性和记忆性很低。任意拆分的随机字符串也可能提供解决方案。最后,随机选择的英文单词更容易记忆和交流,并且可能仍会提供相同级别的隔离和保护。

毕竟,除非您的用户特别勤奋并且禁用地址历史记录和浏览器历史记录,否则 URL 将在那里供所有人查看谁随后访问了该计算机。

于 2009-03-11T16:20:33.473 回答