我目前使用Spring Boot和Hibernate与单一数据源访问单一数据库。我需要读取和写入数据库。直到现在一切都很好。
现在,当谈到SQL注入时,我的项目经理有点偏执,尽管我们尽了最大努力来参数化任何接受任何类型用户输入的查询。因此,他问我是否可以使用两个数据库用户连接到同一个数据库:一个具有读/写访问权限,另一个具有只读访问权限。这样,对于每个只需要读取访问权限的查询,我可以使用只读用户,并有一个额外的SQL注入攻击保护层。
通过谷歌搜索,我在这里找到了Baeldung关于使用多个数据源的优秀文章。我想我可以采用这种方法,但我需要复制我的@Entity类,这听起来是个可怕的想法。
所以我的问题是:
有没有一种聪明的方法可以切换数据库用户,这样我就可以使用一个用户读取数据库,使用另一个用户写入数据库?
您可以这样做,但这对SQL注入没有帮助。即使攻击者只能读取数据,这通常也足以成为一个问题。切换数据源的唯一原因是IMO通过查询辅助服务器来提高读取性能。IMO只有代码审查、培训和仔细的编码才能帮助您避免SQL注入。
问题内容: 我需要创建一个可以管理多个数据源的服务。当首次运行应用程序时,这些数据源不一定存在,实际上,端点将创建新数据库,我希望能够切换到它们并创建数据。 例如,假设我有3个数据库,A,B和C,然后启动应用程序,使用创建D的端点,然后再使用D。 那可能吗? 我知道如何切换到其他数据源(如果存在),但是现在看不到任何解决方案可以使我的请求成为可能。你有什么主意吗? 谢谢 问题答案: 为了使用Spr
我需要创建一个Camel路由,它轮询一个数据库,转换检索到的数据,然后将新实体插入另一个数据库。我需要帮助配置。 为什么它要寻找persistence.xml文件而不是使用注释?我使用的是Spring Boot1.5.13,与Camel 2.21.1一起发布。
我还向b_spring.xml声明了另一个entityManagetFactory、事务管理器和dataSource。 误差 bean初始化失败;嵌套异常是org.springframework.beans.factory.nosuchbeanDefinitionException:没有定义[javax.persistence.entityManagerFactory]类型的唯一bean:预期的单
问题内容: 我们在项目中使用MYSQL和Hibernate。 JPA用于将对象持久存储在DB中。 我们有多个具有相似代码的类 现在我们也想对oracle提供支持。我们应该怎么做?oracle不支持strategy = GenerationType.AUTO。 一个解决方案是我们可以在每个POJO中定义我们不想做的序列吗? 请提供一些建议,以便我们继续前进。 问题答案: AUTO策略也应适用于Ora
问题内容: 我试图在相同的数据上有两个轴。 数据是一对。情节是a ,我有两个和一个。 对于y值,所有数据均以米为单位,我希望有一个轴以米为单位显示该轴,以英尺为单位显示该数据。现在,这感觉很普通,但是我无法决定最明显的方法。一种有效的方法是复制数据并以英尺为单位设置y值,然后添加另一个并完成该操作。 但是我认为,子类化或向其注入一些功能以缩放值会更明智。还是我应该采用第一种方法? 你怎么看? 问题
我试图在相同的数据上有两个轴。 数据是两个。该图是,我有两个和一个。 所有的数据是以米为y值,我想有一个轴显示它在米和一个轴显示它在英尺。现在这感觉像是一件常见的事情做,但我不能决定最明显的方式来做它。一种可行的方法是复制数据,并在脚中使用Y值,然后添加另一个并使用它。 但是我认为更明智的做法是将子类化,或者在中注入一些功能来缩放值。还是我应该采用第一种方法? 你觉得呢?