对于Web应用程序(包含一些真实的私有数据),我们希望使用隐私增强技术来防止有人获得数据库权限时的大风险。
应用程序是使用不同的层构建的,我们使用(如主题标题中所述)Fluent NHibernate连接到我们的数据库,我们已经创建了自己的包装类来创建查询。
对于我们正在构建的应用程序,安全性是一个大问题。我将尝试通过一个简单的例子解释设置:
我们想要确保: 一个可能获得访问我们数据库的黑客,不应该只打开数据库就能看到客户和其他表之间的链接。所以实际上应该有一些隐藏的链接"客户和其他表之间。个人数据和所有敏感的其他表格不应该明显地链接在一起。 由于数据敏感性,我们正在寻找更强大的解决方案然后静态地对table_id进行散列并在其他表中使用它,因为当其中一个人链接到相应的客户端时,并非所有其他客户数据也受到了损害。 最终,客户表根本无法链接到其他表,只需在数据库内部工作,需要应用程序代码来链接表。
为了实现这一目标,我们一直在研究不同的方法,但由于该客户端的多个链接表,以及进一步的开发(因此可能更多的表),我们正在寻找集中式解决方案。这就是为什么我们得出结论应该在数据库连接器中处理。在互联网上搜索并在Stack Overflow上搜索并没有指出我们正确的方向,也许我们因为错误的搜索条件而无法找到这一点(PET,隐私增强技术,结合NHibernate没有给我们任何指示。
我们如何在这种特定情况下实现我们的目标,或者在哪里寻求帮助我们解决这个问题。
答案 0 :(得分:0)
我们对我们的应用程序有类似的要求以及我们最终使用数据库模式的要求。
我们有一个数据库,每个客户都有一个单独的架构,其中存储了该客户的所有数据。可以从架构链接到数据库的其余部分,但不能链接到不同的架构。 可以分别为每个模式设置安全性,这样可以使黑客的生活更加艰难。
话虽如此,我还可以设想一个解决方案,让NHibernate加密它将发送到数据库的所有数据,并解密它所收到的所有内容。数据将被保存,但查询数据将非常困难。
所以这个问题可能没有一个答案,你必须决定什么是更好的:无法查询,或者只是让黑客更难以获取数据。