同一个JPA数据源的多个用户



我目前使用Spring Boot和Hibernate与单个数据源访问单个数据库。我需要从和写入数据库。到现在为止一切正常。

现在,当谈到SQL注入时,我的项目经理有点偏执,尽管我们尽了最大的努力来参数化任何接受任何类型用户输入的查询。因此,他问我是否可以用两个数据库用户连接到同一个数据库:一个具有读写访问权限,另一个具有只读访问权限。这样,对于每个只需要读访问的查询,我可以使用只读用户,并有一个额外的保护层来防止SQL注入攻击。

在谷歌上搜索了一下之后,我在这里找到了Baeldung关于使用多个数据源的优秀文章。我想我可以采用这种方法,但我需要复制我的每个@Entity类,这听起来像一个可怕的想法。

我的问题是:

是否有一种聪明的方法来切换数据库用户,这样我就可以用一个用户来读数据库,另一个用户来写数据库?

您可以这样做,但这对SQL注入没有帮助。即使攻击者只能读取数据,这通常也足以成为一个问题。切换数据源的唯一原因是通过查询辅助服务器来提高读取性能。在我看来,只有代码审查、培训和仔细编码才能帮助你避免SQL注入。

最新更新