作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在创建一个 Multi-Tenancy 数据库,其中每个租户都有自己的模式。我正在使用 Java JDBC 和 MySQL。当新租户注册时,他们为其组分配的名称将成为架构名称。
我的挑战是如何在没有 SQL 注入(inject)的情况下做到这一点。显然你不能像这样参数化创建模式语句:
create schema ?
如果我允许将字符串中的名称放在该语句的末尾,就会为 SQL 注入(inject)打开一个巨大的安全漏洞。所以我只是想知道最好的方法是什么。
我最好的猜测是让架构名称实际上不是组名称,而是通过内部过程创建它们。类似于 (groupId + firstThreeLettersOfName)。但我对想法持开放态度。
最佳答案
首先,使用清理程序。去除除字母数字和下划线以外的所有字符,并限制长度。
其次,将名称用反撇号括起来。这应该会给你想要的结果。
关于java - 安全地为 Multi-Tenancy 数据库创建新模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39065112/
我使用以下命令创建了一个只读用户 CREATE ROLE read_only WITH LOGIN PASSWORD 'password' NOSUPERUSER INHERIT NOCREATEDB
我正在为我正在构建的许多应用程序设计 OOP 继承模式。 Javascript 有很多方法可以做到这一点,但我偶然发现了一种我非常喜欢的模式。但现在我正在为分离类和实例的需要而苦苦挣扎。 我有一个名为
我是一名优秀的程序员,十分优秀!