发送数据库文档ID(安全)

时间:2014-06-10 22:33:43

标签: database couchdb database-security

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

总的来说,我意识到通过默默无闻的安全性并不是一种好的做法,但我想知道我是否应该对Document Ids保持谨慎。

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

2 个答案:

答案 0 :(得分:2)

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

您可以在CouchDB配置中将此更改为使用纯粹的128位随机UUID,方法是将algorithm部分中的uuids设置为random。有关更多信息,请参阅CouchDB Docs。什么都不可能从他们身上获得。

编辑:如果您选择自己的文档ID,当然,您泄漏了任何内容:)

答案 1 :(得分:1)

比较便利性和安全性:

便利性:

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

安全性:

  • 有文件ID我可能做的那么糟糕吗?
  • 假设您有一个Web应用程序来查看文档..您在URL中具有相同的ID,它不能被视为'秘密'
  • 如果我有ID,我可以访问“文档”或我无法访问的其他信息。提示:你应该总是正确地检查权利,如果已经完成,那么你没有问题。
  • 只要ID不被视为“秘密”,这意味着没有任何纯粹的ID安全检查,您应该没有问题。
  • 如果有人发现创建文档的时间,您是否在乎? (来自Jan Lehnardt的回答)