在网址中将UUID用于半私有数据是否安全?

时间:2018-09-16 01:32:12

标签: security uuid websecurity

我经营一家美化公司,有多名工作人员。我想为每个用户提供一个自定义URL(例如mysite.com/xxxx-xxxx-xxxx),以显示其日常计划。转到页面将列出当天5-10位客户的姓名,地址和电话号码。

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

2 个答案:

答案 0 :(得分:1)

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

UUID是否还用于其他用途?如果没有,那么它们适合创建随机URL。

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

另一个问题是蜘蛛机器人。确保没有链接到这些页面,使用robots.txt阻止对该网站建立索引,但是您仍然可能会发现其中某些页面显示在搜索引擎上。最好在cookie中设置UUID并检查以确定它是哪个雇员,以免您的半私人页面开始出现在Google上。

答案 1 :(得分:0)

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

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

在实现方面:

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

在事物的概念方面:

  • 用于标识和身份验证的单个标识符不一定是一件坏事。但是,在大多数情况下,都需要仅标识标识符–在这些情况下,请勿使用“秘密” UUID
  • 如果“船员”由多人组成:您不能撤消单个机组人员的进入权限
  • 某些软件(防病毒软件,浏览器等)将URL中的信息视为公共信息,并可能在没有用户交互的情况下上传它们。