将匿名信息存储在数据库中

时间:2013-01-09 18:05:30

标签: database security

我们的应用程序将存储来自用户的一些信息,我们不希望将这些信息追溯到数据库中的任何其他记录。例如(虽然是一个愚蠢的) - 用户必须付钱才能匿名告诉我们他们最喜欢的颜色是什么。我们希望将每个颜色记录存储为数据库中的新行,并跟踪事务信息。

如果我们将颜色和事务存储在单独的表中,那么如果服务器被黑客攻击,则可以通过使用行的顺序ID(因为颜色将始终具有事务)或通过创建来将行相互关联排的时间。因此,要解决此问题,我们将不会为颜色表​​提供顺序ID列,也不会为颜色表​​提供更新/修改时间。

现在,将颜色与事务关联的唯一方法是查看用于实际存储数据库信息的文件。虽然这可能既困难又乏味,但我认为它仍然有可能,因为颜色表信息可能会按顺序存储在文件中。

如何在无序的情况下存储数据库信息,以免这种情况发生?我想更一般的问题是如何匿名和安全地存储信息? (但这太宽泛了)

显然,答案是不要让你的数据库被黑客入侵,但不是一个好的数据库。

3 个答案:

答案 0 :(得分:2)

您可以预先生成数百万行并随机填充它们。

答案 1 :(得分:0)

考虑利用非关系型数据库,例如: NoSQL

答案 2 :(得分:0)

如果您需要分析数据,您需要了解它,如果您也可以攻击者。无论你有什么聪明的解决方案,你都会想到相关性。关系数据库事务日志,将显示插入更新时删除的内容和时间。因此,如果要使用相同的数据库,则无法提供100%的数据解耦。您可以使用某些HSM加密数据,这会使被盗数据对攻击者无效。或者您可以将数据存储在其他机器上,并随机延迟或进行一些批处理(等待并插入20条记录而不是一条)......但它可能很棘手而且可能会失败。