出于“安全原因”,我们的客户希望将用户表与所有其他表分开。鉴于我们的应用程序是使用RoR和MySQL构建并在Unicorn和Nginx上运行,这是一个很好的做法吗?
我可以想到两种可能的方式:
OR
我认为这两种解决方案都可能会在迁移和其他任务中产生一些问题,我不知道这是否是保护用户数据的有效方法。我是初级开发人员,我不熟悉某些数据库和安全性概念。有什么建议吗?
答案 0 :(得分:0)
一个非常常见的模式是让users表字面上只包含用户帐户的详细信息,并且不包含该帐户背后的实际人员的详细信息。即,它将具有用户名,电子邮件,密码或加密密码&盐或其他什么,但没有别的 - 甚至没有名字。所以,所有"胶水"这使得系统工作保留在常规数据库的users表中。
然后,帐户背后的真实人员的详细信息(姓名,电话号码,地址,卡片详细信息等)存储在不同的表或表中,其中任一表中的外键指向另一个表。您可以将它们存储在不同的数据库中,但我不知道这是否会使其更安全。更好的方法可能是使用用户的个人数据加密表,或者可能加密整个数据库。见
http://thinkdiff.net/mysql/encrypt-mysql-data-using-aes-techniques/
我觉得你的客户对互联网安全知之甚少,只需要确保一些黑客不会把所有客户都放在一边。信用卡详细信息在线,最近在几个高调案件中发生过。为了满足这些要求,我建议你仔细研究并实施至少两种不同的安全策略,每种策略都可以被认为是足够的。
答案 1 :(得分:0)