如何保护MySQL中的敏感数据?

如何保护MySQL中的敏感数据?,mysql,Mysql,我搜索了好几次,但在这件事上只找到了不清楚的答案 我正在开发一个Web应用程序,它可以存储敏感信息(中等大小的文本),而该网站本身就托管在一个安全的Web托管提供商上。但我想知道,在MySQL中存储这些敏感文本片段的最佳方式是什么,而不必担心不必要的数据库访问(比如从phpMyAdmin),并且仍然能够代表用户自己对这些信息执行操作(比如生成图表和创建PDF) 感谢并为我的英语感到抱歉。如果你不控制你的服务器,你就没有任何安全保障 控制你的服务器 使用mysql安全模型限制谁可以使用phpmya

我搜索了好几次,但在这件事上只找到了不清楚的答案

我正在开发一个Web应用程序,它可以存储敏感信息(中等大小的文本),而该网站本身就托管在一个安全的Web托管提供商上。但我想知道,在MySQL中存储这些敏感文本片段的最佳方式是什么,而不必担心不必要的数据库访问(比如从phpMyAdmin),并且仍然能够代表用户自己对这些信息执行操作(比如生成图表和创建PDF)


感谢并为我的英语感到抱歉。

如果你不控制你的服务器,你就没有任何安全保障

  • 控制你的服务器
  • 使用mysql安全模型限制谁可以使用phpmyadmin或诸如此类的工具查看数据

  • 如果这还不够好,你可以考虑加密。但是,您必须将密钥存储在某个地方,现在您又回到了使用mysql密码的起点。

    一个选项是使用mysql的内置加密,请参阅。另一个主要选项是使用二进制字段并在应用程序中进行加密,例如使用AES


    如果您将密钥存储在服务器上,那么任何有权访问服务器和数据库的人都可以解密数据。如果这也是一个问题,那么你需要考虑如何从用户那里获得密钥。这可能很难做到既安全又方便。

    您可以使用mysql编码/解码来加密数据库字段。

    您应该锁定您的mysql用户帐户。考虑限制你的WebApp本身能做什么。只给数据库中的最小必要权限,并考虑创建存储过程,以进一步确保它只能访问它所需要的,而不是其他任何东西。p> 如果您不信任托管提供商,那么您至少需要将数据库移动到您可以信任的地方。这进一步意味着您需要确保与数据库的连接是安全的(SSL)


    你应该加密你的数据。不要像@WhiteFang34所说的那样尝试自己进行加密,使用内置加密。

    麻省理工学院设计了一个名为Cryptdb的系统。Cryptdb可以根据数据所有者密码对数据进行加密,甚至管理员都无法访问真实数据。
    团队称phpBB的管理费用为14%

    你的英语非常好。同意“thedugas”——我见过母语为英语的人的英语差得多。@thehudgas@ceejayoz谢谢你。我很感激。:)请注意,这将使索引在加密列上无用。这是一种折衷。如果我希望我的数据可以搜索,怎么办?我建议使用或进行全文搜索,即使你不加密数据。但问题是如果索引没有加密,那么数据就可以从中重建。听上去你可能想完全控制你的服务器,就像bmargulies建议的那样。你可能想考虑一个VPS样的,也许更好的描述自己。人们在我们的申请中提交他们的日记。它们是“敏感数据”,这些用户担心我们的应用程序的安全性。他们不希望只有他们自己才能访问这些数据。我担心的是黑客大多不是普通用户。你建议采用何种加密方式?Grubbs(2017):为什么你的加密数据库不安全: