基于St r ut s2框架的W eb系统安全模型分析
宋彦儒周翔
(江西理工大学南昌校区信息工程系,江西南昌330013)struts框架是干什么的
脯剡基于B/S结构的应用软件系统,因为其在客户端采用测览器作为客户端软件而不需要额外安装誉户端软件提高7用户的可聚伟性,近些年采得到了广泛的使用。袒其作为—种网络应用软件系统。系统中辨要使雕重4的资源都可船鼬盖过罔络进行存取糠作。这兢时费潭的安全性造成了一定的威胁。
睽为Il司】S w at32;W eb应用;安全模型
近些年来随着企业、事业单位、政府机构以及各种社会组织纷纷建立自己的局域网并接入I nt ernet,基于W eb的应用也得到了广泛的发展。用户可以通过W eb获取各种服务或资源,并且这些服务或资源只应为合法用户提供。其实这些服务或资源存在于互联网环境下,任何互联网用户都有获取它的可能性(合法或非法),为此就必须有一种机制来保护这些服务或资源,以使得只有合法用户才能使用服务或资源。
1S t rut s2框架
St r ut s2W eb框架作为目前广泛使用的W eb应用软件框架,它通过提供核心控制器实现了S un的M odel2
架构,这个控制器可以用来管理业务逻辑层、J S P页面和其他表现设备之间的流程,此外St r ut s2还通过使用来实现在业务逻辑实现的前后执行各种校验和权验控制工作以及使用R e sul t来实现返回表现层的工作。如图1所示。
图l St r u t s体系结构图
从图1中可以得出,St r ut s的体系结构包括核心控制器,,业务逻辑(A ct i on)和业务逻辑返回给客户端的表现页面三部分。
在这里我们主要讨论一下。体系是St r ut s2的重要组成部分,可以动态的拦截发给业务逻辑(A c t i on)的请求,通过机制,我们可以在业务逻辑执行的前后插入某些代码。通过这种方式,就可以把多个业务逻辑中需要重复指定的代码提取出来,放在里定义,从而提供更好的代码重用性。
2安全模型
从以上的St r uc t s2框架分析可得,客户端请求的所有页面首先都会到控制器会聚再由控制器转发到各个业务逻辑(业务逻辑再去访问用户所要的资源),而在控制器与业务逻辑之间可以添加一定量的
来实现对访问资源对象的访问控制。如图2所示。
艟t馨
阁2资源对象访问7J;-A罔
图2中安全参考监督器模块是用来进行资源安全访问控制的核心模块,任何用户对任何资源对象的访问都由此模块来进行许可监督,只有得到安全参考监督器许可用户才可以访问相应的资源对象。
而对于用户而言其本身也是一种资源,所以在某一使用者在使用系2009年1月(1:)
统资源之前,其必须以一个特定的用户身份进行登录。为了保证用户登录的合法性,在此引入了身份验证过程。用户只在合法登录才能进一步的去使用系统中所提供的资源。
3安全模型的实现
3.1资源对象的描述及管理
W eb软件系统中的资源主要包括网页、文件夹以及各种文件,为了对这们资源对象实施访问控制就必须对资源对象本身进行描述。在本模型中采用一种称为对象目录的结构来存储系统中的资源对象。对象目
录采用面向对象的存储方法,每一个对象实例包括某一具体对象的各种属性,如资源编号、资源名、资源所属人以及资源所属组等。如表1所示。
表l资源对象描述表
R es N ur n R es N ar ae
f i l el
R es ofU5er
j ack
R es O f Gr oup
t e ac he r 在表1中对于每一项资源对象并没有记录某一用户对其的访问权限,这是因为对于不同的资源对象权限的多少以及所牵连的用户数量都是不同的,这样就很难将资源对象的权限记录在每一个对象实例中。为了解决这一问题,模型引入了资源对象的访问控制列表(R O A C L:Res ourc eO bj ec t A c ce ss C ont rol Li s t),每一个资源对象对应于一个资源访问控制列表(使用资源编号建立关联)。每一访问控制列表又包含任干访问控制项(A C E),每个访问控制项用来标识用户或用户组对资源对象的访问权限(
如图3所示)。一般情况下,访问控制项有四种类型,分别代表如下含义:拒绝对该资源对象的访问:允许对该资源对象的读取:允许对该资源对象的写入;允许执行该资源对象。访问控制列表首先列出拒绝访问的访问控制项,然后才是允许的访问控制项,并且采用默认拒绝模式。
瓷谛桷号
髓谢名
奄诬所属者
侥诚所犀组
访日投审I项一——一珂户c组1
叙段I
罔3资源访问控制列表
上述的资源对象属性以及其访问控制列表在实现时分别可采用二维的关系表来进行实现,分别称为资源对象表和访问控制表。在资源对象表中每一个记录代表某一具体资源:而每一访问控制表表示某一资源对象的访问控制列表:从而形成了资源对象表中一项记录对应于某一特定的访问控制表。
用户作为一种特殊的资源,它是使用者在使用系统的前提。使用者只有获取了合法用户身份才能在进一步的使用系统资源。用户作为一种资源对象其基本属性信息同样保存在系统中,以便身份验证时使用。用户的基本属性有用户名、密码和用户说明等。由于系统的用户一般都比较多,为了访问控制能够高效实现,在设计时可以对用户按某种关系分为几个组,实现访问控制时除了按用户来也可以按组别来。
32安全参考监督器的实现
安全参考监督器是实现资源安全访问的核心模块,这一模块根资源的访问控制列表来保证用户访问的安全性。
当用户通过身份验证后就成为了系统的一个合法用户,而对于合法