提问人:Shanky 提问时间:8/12/2021 最后编辑:James ZShanky 更新时间:8/16/2021 访问量:1163
拒绝访问 MariaDB 中的information_schema
Deny access to information_schema in MariaDB
问:
我正在寻找拒绝用户访问 Maria DB 中information_schema的最佳方法。默认情况下,每个用户都有权访问information_schema,但只能查看表中与用户具有适当访问权限的对象相对应的行。
我也想阻止它!,以便有更好的安全性来避免SQL注入。请让我知道我们如何才能做到这一点。
revoke select on information_schema.* from mu@localhost;
这也不起作用,因为即使对于root用户,我也收到访问被拒绝错误。
错误 1044 (42000):用户“root”@“localhost”对数据库“information_schema”的访问被拒绝
我对任何可以阻止访问的解决方案持开放态度,无论是在数据库端还是防火墙端。主要目的是为SQL注入威胁做好更充分的准备。
答:
3赞
Bill Karwin
8/15/2021
#1
您无法撤消对INFORMATION_SCHEMA的访问权限。如果用户有权查询表,则他们隐式有权查询有关这些表的元数据。
若要防止 SQL 注入攻击,应修复客户端代码中的漏洞。例如,在设置动态 SQL 查询的格式时,使用参数化查询而不是字符串连接。
-1赞
Shanky
8/16/2021
#2
谢谢你的回复比尔!
是的,你是对的,为此我通过使用 proxySQL 找到了解决方案。在使用正则表达式创建规则后,我对其进行了测试,它按预期工作。以下是他们官方文档的链接。
评论
0赞
Georg Richter
8/16/2021
阻止对INFORMATION_SCHEMA的访问意味着,用户无法检索有关creation_time的信息,其他所有内容都可以通过检查元数据或通过检查元数据来检索。编写过滤规则以撤销对信息架构的完全访问权限即使不是不可能,也是相当复杂的,因为您需要复杂的过滤,这并不能降低 SQL 注入的风险。SHOW CREATE TABLE
0赞
Bill Karwin
8/16/2021
我想任何数量的其他工作都比实际修复代码中的漏洞更可取?
评论