MYSQL限制用户访问information_schema

Suj*_*ith 12 php mysql

我有一个MySQL服务器(服务器版本:5.1.68社区; MySQL客户端版本:5.0.51a).有没有办法限制所有用户对info_schema的ALL访问?

会发生的是,一些客户站点经常通过SQL注入被黑客入侵,他们可以从information_schema表/视图中获取数据库结构.当然,我们需要更改PHP代码以防止SQL注入,但我仍然想限制对服务器范围内的information_schema的访问.

请指导我......提前谢谢

Alm*_* Do 20

INFORMATION_SCHEMA是一个虚拟数据库,包含有关当前用户可访问的所有数据库的元信息.即它是根据用户的权限动态构建的.它不是真正的数据库.在任何情况下都不应该尝试更改它的权限 - 它会根据服务器的状态动态更新.

所以你的问题没什么意义.如果有人会破坏某些用户并使用它的权限获得系统控制权,他将能够按照INFORMATION_SCHEMA定义访问该用户(因为该用户可以访问其权限允许的任何内容)是INFORMATION_SCHEMA用户权限的"投影" ).

  • 你应该意识到:如果SQL注入__成功_那么就没有办法阻止用户使用它自己的权限.`INFORMATION_SCHEMA`只是一个投影.如果用户可以访问某些表 - 那么即使不访问该数据库,他也会这样做.在你的情况下,他只会使用`SHOW TABLES` (3认同)
  • 非常感谢您的快速回复.我的问题不是关于某人妥协其他用户.但是使用SQL注入,任何人都可以注入一个sql语句,如`....%20union%20select%201,group_concat(table_name),3%20%20 from%20information_schema.tables%20 where%20table_schema = database()`(取自实际注入我的网站)到PHP代码并获得当前数据库的结构.我完全理解PHP代码中的漏洞必须修复,但如果我们可以从information_schema限制所有用户的SELECT权限(至少),那么将更安全. (2认同)