加密spring mvc app使用的mysql数据库

时间:2015-07-16 22:25:59

标签: java mysql security spring-mvc encryption

Web服务器上的spring MVC应用程序与托管在同一服务器上的MySQL数据库进行交互。 Spring MVC应用程序需要能够搜索数据库。

有没有办法可以加密MySQL数据库以保护它免受外部恶意攻击,同时还保留了Spring MVC应用程序查询数据库的能力?如何?

我想确保应用程序以外的任何人都无法使用数据库的内容,但我还需要应用程序本身才能按名称,ID等查找记录。

1 个答案:

答案 0 :(得分:0)

不,MySQL不支持整个数据库的加密。您必须选择以下解决方案之一:

加密某些列

您可能不需要加密所有数据,只需要某些敏感数据。您可以在应用程序级别执行此操作,仅将blob插入数据库。这需要更新您的代码 - 也就是说不透明。

使用加密分区/磁盘

另一种解决方案是在操作系统级别进行加密。只要正确设置了用户权限,系统运行时就没有恶意进程能够读取数据,并且在系统脱机时根本没有人能够读取它。这将需要记住每次启动机器/解锁分区时输入密码。

使用本机支持加密的数据库

H2就是这样一个数据库。它是用纯Java for Java应用程序编写的数据库。遗憾的是,这将需要数据迁移,这可能会很痛苦,具体取决于内容。

根本不做任何事情

查看您正在保护的数据和threat model。您认为加密数据库是值得的吗?如果您的应用程序是一个简单的个人博客,那么除了用户的密码哈希之外没有太多要保护的(你 哈希,对吧?)。另一方面,如果您要存储医疗数据并且需要以某种方式对其进行加密,那么第一种选择可能是最佳方式。