2

我有一个网络应用程序,它将对象存储在数据库中,然后根据对这些对象的更改发送电子邮件。为了调试和跟踪,我正在考虑在电子邮件元数据中包含文档 ID。这里有安全风险吗?我可以加密它(AES-256)。

一般来说,我意识到通过默默无闻的安全性不是好的做法,但我想知道我是否仍然应该小心使用文档 ID。

为清楚起见,我使用的是 CouchDB,但我认为这通常适用于数据库。

4

2 回答 2

2

默认情况下,CouchDB 使用带有 UTC 时间前缀的 UUID。您可以泄露的最糟糕的情况是文档的创建时间,您将能够关联可能在同一台机器上生成的大约 1k 个 ID。

您可以在 CouchDB 配置中将其更改为使用纯 128 位随机 UUID,方法是将部分中的algorithm设置设置为. 有关更多信息,请参阅CouchDB 文档。不应该从他们那里得到任何东西。uuidsrandom

编辑:如果你选择自己的文档 ID,当然,你会泄露你放在那里的任何东西 :)

于 2014-06-11T07:36:08.367 回答
1

比较便利性和安全性:

方便:

  • 在邮件中包含文档 ID 对您有多大用处?
  • 你能快速得到有用的信息/有身份证的文件吗?
  • 加密/散列是否意味着更难获得实际的数据库文档?(这里的答案是肯定的,除非你有一个很好的查找表单/直接获取哈希的东西,避免手动步骤)

安全:

  • 有一个文档 ID 我能做什么不好?
  • 假设您有一个 Web 应用程序来查看文档..您在 URL 中具有相同的 ID,它不能被视为“秘密”
  • 如果我有身份证,我可以访问“文档”或其他一些我不应该访问的信息。提示:您应该始终正确检查权限,如果这样做了,那么您就没有问题。
  • 只要身份证不被视为“秘密”,这意味着没有任何纯粹针对身份证的安全检查,你应该没有问题。
  • 您是否关心是否有人发现了文档的创建时间?(来自 Jan Lehnardt 的回答)
于 2014-06-11T15:14:57.067 回答