【问题标题】:Is it safe to export sql database to my PC?将sql数据库导出到我的PC是否安全?
【发布时间】:2016-06-29 19:29:58
【问题描述】:

有人可以像中间人一样拦截它吗? 当您想将包含所有用户信息的数据库备份到硬盘上时,该怎么做?

我应该加密它吗?我的 phpMyAdmin 在 SSL 下运行,所以我猜连接是加密的。

【问题讨论】:

  • SSL 应该没问题。但是……虽然将未加密的用户信息放在您的硬盘上,这可能不是一个很酷的主意。服务器上是否有足够的空间来进行 SSH、转储、压缩、加密和存储?或者 rsync/sftp 它在安全的地方?

标签: mysql sql security


【解决方案1】:

我假设您有兴趣将生产数据库移动到本地 PC 以用于开发目的,并且您担心保护最终用户不被窥探。您强调了一些关于如何截取数据的有效担忧,但您似乎没有意识到:将生产数据库导出到开发人员机器本身就是违反应用程序的安全,即使没有其他人知道。您的用户希望他们的数据对所有人都隐藏,包括您作为(可能是善意的)开发人员!将他们的个人数据用于你自己的目的——无论你认为你的目的是多么光荣——都违反了这些期望。除了仅为了从灾难性数据丢失事件(生产中的硬盘驱动器故障、修补补丁等)中恢复而创建备份之外,您应该永远发送生产数据的原始转储任何地方。 (当然,当您创建这些备份时,您可能应该对它们进行加密。)

回到您想要保护最终用户数据的假设,对抗恶意实体的最佳选择是对敏感数据实施data masking。在这里,您可以导出架构的关系内容,其中包含不会损害实际用户的身份或意图的数据。从本质上讲,您将姓名和电子邮件地址替换为欺骗身份,并且任何其他可能被归类为“机密”(您需要自行确定)的内容都会被类似地编辑和/或替换为虚假数据。

数据屏蔽的优势应该立即显现出来。即使(上帝保佑!)有人拦截了您的备份并试图从中推断出有关您的用户的信息,他们最终得到的只是一组虚构的数据,这些数据不能用于推断有关您的实际用户的任何信息。当然,如果他们确实以某种方式拦截了您的转储,他们可以轻松地对您的架构进行逆向工程,这本身就是一个麻烦,但至少他们不会立即访问您的私人详细信息用户群。也就是说,如今有许多相当安全的方式来传输数据,例如基于 SSL 的 FTP(又名 FTPS)。 (请注意,FTPS 与 SFTP 相同!)

【讨论】:

  • 虽然你的答案是正确的,但我想补充一点,即基于 SSL 的 FTP(实际上是 TLS)层实际上与 SFTP不一样,但我见过的很远太多人似乎认为 SFTP == FTPS。
  • @Martin 是的,你是对的。为了重复,我会将其附加到我的答案中。
  • 那么如果我为了从数据丢失中恢复而导出一个 SQL 数据库,这不是违反安全性吗?我的意思是,我不想做任何违法的事情。我只需要每周将它导出到某个地方,这样万一数据库搞砸了,我可以将它重置为最后一个导出的数据库。
  • 导出 SQL 数据库以便在出现问题时进行备份是一种非常好的做法。事实上,你应该经常这样做;尽可能多地裸露。糟糕的是,当这些备份被用于其他目的时,即使这些“其他目的”是纯粹的(例如想要开发数据)。许多组织这样做是因为它很方便,但这并不正确。此外,在合法性方面,这在很大程度上取决于您的组织所属的司法管辖区以及您与用户的合同……但总的来说,我认为这并不违法。
猜你喜欢
  • 1970-01-01
  • 2011-11-08
  • 2012-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多