gpt4 book ai didi

java - 安全地为 Multi-Tenancy 数据库创建新模式

转载 作者:行者123 更新时间:2023-11-30 22:14:03 24 4
gpt4 key购买 nike

我正在创建一个 Multi-Tenancy 数据库,其中每个租户都有自己的模式。我正在使用 Java JDBC 和 MySQL。当新租户注册时,他们为其组分配的名称将成为架构名称。

我的挑战是如何在没有 SQL 注入(inject)的情况下做到这一点。显然你不能像这样参数化创建模式语句:

create schema ?

如果我允许将字符串中的名称放在该语句的末尾,就会为 SQL 注入(inject)打开一个巨大的安全漏洞。所以我只是想知道最好的方法是什么。

我最好的猜测是让架构名称实际上不是组名称,而是通过内部过程创建它们。类似于 (groupId + firstThreeLettersOfName)。但我对想法持开放态度。

最佳答案

首先,使用清理程序。去除除字母数字和下划线以外的所有字符,并限制长度。

其次,将名称用反撇号括起来。这应该会给你想要的结果。

关于java - 安全地为 Multi-Tenancy 数据库创建新模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39065112/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com