2

我经营着一家园林绿化公司,并有多个工作人员。我想为每个人提供一个自定义 URL(如mysite.com/xxxx-xxxx-xxxx),以显示他们的每日日程安排。转到该页面将列出当天 5-10 位客户的姓名、地址和电话号码。

在半私有数据的 URL 中使用 UUID 是否安全/明智?

4

2 回答 2

1

取决于您希望它有多安全。

UUID 是否用于其他用途?如果没有,它们可以用于创建随机 URL。

但是,浏览器历史记录将允许使用同一台机器的任何人找到 URL。此外,除非使用 https,否则网络嗅探器可以轻松查看请求的 URL 并转到同一页面。

另一个问题是蜘蛛机器人。确保没有指向这些页面的链接,使用 robots.txt 来防止将网站编入索引,但您仍然可能会发现某些页面出现在搜索引擎上。最好将 UUID 设置在 cookie 中并检查以确定它是哪个员工,以免您的半私人页面开始出现在 google 上。

于 2018-09-16T01:42:12.617 回答
0

该架构是否适合您,取决于您的威胁模型(以及一些实施细节)。如果没有具体的威胁模型,就不可能对您的问题给出明确的答案。

但是,我可以就解决方案的潜在问题为您提供一些想法,以便您确定它们是否与您的应用程序相关。这不是一个完整的列表。

在执行方面:

  • 并非所有 UUID 生成器都是一样的。理想情况下,您希望使用基于加密安全 RNG 的生成器,提供随机选择每个字节的 UUID。
  • 使用 UUID 进行数据库查找或类似操作不一定是恒定时间操作(因此可能存在边信道攻击,除非您自己实现查找)
  • 确保您的 URI 不会通过引荐来源网址泄漏
  • 一些工具试图检测“秘密” URL,以保护它们免受历史同步或其他自动功能的影响。您的架构很可能不会被检测为“机密”。人为地延长 URI 并将 UUID 移动到查询参数中可能会更好。
  • 您可以使用常用方法(速率限制、服务器加固等)进一步减少攻击面

在事物的概念方面:

  • 用于识别和认证的单一标识符不一定是坏事。但是,在大多数情况下,需要一个仅用于标识的标识符——在这些情况下,您不得使用“秘密”UUID
  • 如果“船员”由多人组成:您不能撤销单个船员的访问权限
  • 某些软件(防病毒软件、浏览器等)将 URL 中的信息视为公共信息,并可能在没有用户交互的情况下上传它们
于 2018-09-16T02:11:06.817 回答