Web服务器上的spring MVC应用程序与托管在同一服务器上的MySQL数据库进行交互。 Spring MVC应用程序需要能够搜索数据库。
有没有办法可以加密MySQL数据库以保护它免受外部恶意攻击,同时还保留了Spring MVC应用程序查询数据库的能力?如何?
我想确保应用程序以外的任何人都无法使用数据库的内容,但我还需要应用程序本身才能按名称,ID等查找记录。
答案 0 :(得分:0)
不,MySQL不支持整个数据库的加密。您必须选择以下解决方案之一:
您可能不需要加密所有数据,只需要某些敏感数据。您可以在应用程序级别执行此操作,仅将blob插入数据库。这需要更新您的代码 - 也就是说不透明。
另一种解决方案是在操作系统级别进行加密。只要正确设置了用户权限,系统运行时就没有恶意进程能够读取数据,并且在系统脱机时根本没有人能够读取它。这将需要记住每次启动机器/解锁分区时输入密码。
H2就是这样一个数据库。它是用纯Java for Java应用程序编写的数据库。遗憾的是,这将需要数据迁移,这可能会很痛苦,具体取决于内容。
查看您正在保护的数据和threat model。您认为加密数据库是值得的吗?如果您的应用程序是一个简单的个人博客,那么除了用户的密码哈希之外没有太多要保护的(你 哈希,对吧?)。另一方面,如果您要存储医疗数据并且需要以某种方式对其进行加密,那么第一种选择可能是最佳方式。