欢迎投稿

今日深度:

MySQL安全攻防实战指南之体系结构篇(1)(11)

九、利用缺乏的安全特性

MySQL没有内置访问违例审计机制,但是它支持所有连接和查询的完整日志记录。 这对于安全性的影响是显而易见的,在一些情况下,缺乏本地审计时一个非常大的安全问题。然而,由于提供了对调试日志记录的支持,使得MySQL能够通过--log选项记录每一连接和语句到日志文件。

前面提到的MySQL存储引擎大部分都不支持引用完整性或者事务。虽然这些特性是可用的,但是默认的存储引擎MyISAM却没有实现这些特性。 因此,下面的讨论只是针对MySQL的默认行为的,当然,我们这里讨论的某些问题也可能出现在那些功能不是很丰富的数据库管理系统中。

在一些缺乏引用完整性的应用程序中,可能会出现竞态条件从而引起安全问题,举例来说,假设我们的应用程序通过一个用户表来执行其安全模型:

create table users( username varchar(200), password varchar( 200 ), userid int );
insert into users values ( 'admin', 'iamroot', 0 );

insert into users values ( 'fred', 'sesame', 1 );
insert into users values ( 'joe', 'joe', 2 );

这些用户有权访问一些资源,并使用编号进行标识:

create table resources( name varchar( 200 ), resourceid int );
insert into resources values( 'printer', 1 );
insert into resources values( 'filesystem', 2 );
insert into resources values( 'network', 3 );

这些资源的访问权限是通过一个访问控制表来实现的,表中的记录决定用户是否可以访问各个资源:

create table accesscontrol( userid int, resourceid int, allowed int );
# Admin可以访问下面三种资源:
insert into accesscontrol values ( 0, 1, 1 );
insert into accesscontrol values ( 0, 2, 1 );
insert into accesscontrol values ( 0, 3, 1 );
# Fred可以访问文件系统和网络:
insert into accesscontrol values ( 1, 2, 1 );
insert into accesscontrol values ( 1, 3, 1 );
#Joe只能访问打印机
insert into accesscontrol values ( 2, 1, 1 );


www.htsjk.Com true http://www.htsjk.com/shujukuaq/16813.html NewsArticle 九、利用缺乏的安全特性 MySQL没有内置访问违例审计机制,但是它支持所有连接和查询的完整日志记录。 这对于安全性的影响是显而易见的,在一些情况...
评论暂时关闭