【问题标题】:Multiple users for same JPA datasource同一 JPA 数据源的多个用户
【发布时间】:2021-09-13 16:34:37
【问题描述】:

我目前正在使用带有单个数据源的 Spring Boot 和 Hibernate 来访问单个数据库。我需要读取和写入数据库。到目前为止一切正常。

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

经过一番谷歌搜索,我找到了 Baeldung 的优秀文章 over here 关于使用多个数据源。我想我可以采用这种方法,但我需要复制我的每个 @Entity 类,这听起来很糟糕。

所以我的问题是:

有没有一种巧妙的方式来切换数据库用户,这样我就可以使用一个用户读取,另一个用户写入数据库?

【问题讨论】:

  • 没有。去找你的项目经理,告诉他这没有意义。

标签: java spring-boot hibernate jpa


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2018-09-20
    • 2015-12-09
    • 2016-05-26
    • 2018-12-10
    • 2016-05-27
    • 1970-01-01
    • 2012-07-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多