APP下载

基于ASP.NET的项目管理系统的网络安全模式研究

2010-12-25李爱军

办公自动化 2010年8期
关键词:表单管理系统数据库

李爱军

(苏州职业大学计算机工程系 苏州 215104)

随着互联网技术的日益普及和各行各业基于网络的信息化的快速发展,网络的安全性问题因其特殊的重要性成为当前研究的热点话题之一。网络信息系统用户多,功能复杂,一般采用基于角色权限的访问控制模型,而ASP.NET技术从验证(认证)、授权和扮演(模拟)3个层次上为网络提供了良好的安全机制。

项目管理系统为企业提供了功能强大的项目管理平台,旨在帮助企业成功完成所进行的所有项目。但是跟其他网站一样,面临着一个重要的安全问题。保证项目管理平台的安全是项目管理系统正常运营的重要前提。

一、系统的安全需求分析

项目管理系统的安全威胁主要来自于以下几个方面。

1、来自数据库管理系统本身的威胁

由于项目管理系统是一个大型事务处理系统,其采用的数据库系统应当稳定、安全地运行。所以应当防止系统崩溃(包括OS和DBMS)和重新启动,避免内存的数据丢失而使数据库中的数据的完整性遭到破坏。

2、来自项目管理系统内部人员对整个系统的威胁

因为使用系统的用户很多,每个用户所完成的工作是不一样的,即分配给每个用户的权限是不同的,某些用户就有可能以合法身份进行非授权操作。

3、应当防止外部人员(如黑客)、或其它因素对整个系统的威胁

这主要表现在以下几个方面:

■系统是一个多用户系统,所以就难免存在攻击者利用某个合法用户的身份登录系统进行“假冒攻击”。

■攻击者为了骗取某合法用户的身份和登录密码,可能会采取“主页”欺骗。

■系统中所有数据的处理都是通过网络实现的,如何保证信息的接收(发送)者不能否认曾经接收(发送)过某信息也是系统面临的一个安全问题。

二、安全技术描述

1、基于角色权限的访问控制(RBAC)

RBAC(Role-Base Access Control),在系统的应用层安全控制中起非常重要的作用。RBAC的核心思想就是将访问权限与角色相联系,通过给用户分配适合的角色,从而使用户与访问权限相联系。角色是根据企业内为完成各种不同的任务需要设置的特定的任务范畴,系统根据用户在企业中的职责和责任来设定他们的角色。用户可以在角色间进行转换。

2、ASP.NET的安全技术

(1)验证(Authentication)

验证是对请求信息的用户进行身份识别。ASP.NET身份列表中的验证是通过验证提供程序来实现,其中包含对来自客户的请求进行验证的代码模块。

ASP.NET提供了ASP.NET自身和ASP.NET+IIS两大类验证实现形式。它不仅支持微软的Passport验证服务,还单方面提供签到服务和用户描述服务;而且还提供了cookies帮助建立一种基于用户Forms的验证方式。通过cookies用户的应用程序可以用自己的代码和逻辑实现用户定义的可信性验证。ASP.NET提供了三种认证用户的方法,每一种都是通过一个独立的认证提供程序实现的Windows,Forms和Passport。接下来将介绍这些认证方法。

①Windows认证

请求ASP.NET时,客户首先遇到的是微软的WEB服务器IIS。此时IIS将对用户进行认证,或将该工作交给服ASP.NET应用程序;当IIS处理认证工作时,它可以直接与操作系统通信,对用户的证件进验证。

②表单认证

在ASP.NET中,可以选择由ASP.NET应用程序(而不是IIS)通过表单进行认证,这让用户对站点的认证方案有更大的控制权,可以将用户的证件存储在一个数据库或XML文件中,而不是Windows系统中。

③Passport认证

Passport认证是微软公司提供的一种集中式认证服务。其工作原理与表单认证非常相似,只是无须创建任何自定义的功能。这两种方法都在客户端创建认证cookie。使用Passport认证时,用户将被重定向到Passport登录页面,让用户填写表单,该表单将通过微软的Passport服务来检查用户的证件,以确定用户是否合法。然后像表单认证一样设置一个认证cookie。Passport认证服务并不创建认证cookie,这项工作是由原来的Web服务器来完成的。

(2)授权(Authorization)

授权是安全系统提供的又一项重要功能,旨在确定通过验证的用户可访问哪些资源。ASP.NET提供了两种授权方式即基于ACL资源权限的授权方式和URL授权。

(3)扮演(Impersonation)

扮演能够让ASP.NET通过运行客户程序的用户身份来执行页面。如果用户以某一身份通过授权,那么ASP.NET将会根据该用户的权限来限制或拒绝其对资源的访问。

(4)安全通信(Secure Communication)

许多应用程序跨网络在终端用户和中间的应用程序节点之间,来回传递机密数据。机密数据可能包括用于身份验证的凭据,或者是诸如信用卡号码或银行事务处理细节等数据。为防止出现不希望发生的信息泄露以及保护数据在传输过程中不被非法修改,对通信端点之间的信道必须加以保护。

3、数据库保护设计

本系统通过SQLServer 2000数据库管理系统提供的安全账户认证控制用户对服务器的连接,使用数据库用户和角色等限制用户对数据库的访问。项目管理系统创建了不同用户账户、角色以及分别授予不同的权限。

三、基于ASP.NET的三层网络架构

系统基于Windows2000 Server操作系统,采用ASP.NET实现Web服务器与数据库的连接,后台数据库为SQL sever2000系统,以.net为系统开发平台,系统采用B/S的三层架构。系统利用ASP.NET部署B/S的三层架构,三层是由表示层、业务层、数据层组成。表示层就是利用浏览器为客户提用服务的图形界面,负责直接跟用户进行交互;业务层位于表示层和数据层之间,由应用服务器和Web服务器实现系统业务逻辑功能;数据层是三层中的最底层,负责数据的存储和访问。每层的功能非常清晰,层与层之间不能跨越,客户端不直接与数据库进行交互,而是通过COM/DCOM通讯与业务层建立连接,业务层经过ADO.NET实现对数据层的数据进行访问,实现了显示、数据、逻辑的分开,减少了耦合度,更加灵活,适于维护。

ASP.NET在网页中使用基于事件的处理,表示层的页面代码和后台的代码分离,系统采用C#作为后台代码的语言。.NET中可以方便地实现组件的装配,后台代码通过命名控件可以方便地使用自己定义的组件。表示层放在ASP.NET页面中,数据库操作和业务逻辑用组件来实现,这样就很方便地实现了三层架构。这样的结构减少了入口点,减少了由于客户端被破坏而给数据库带来损失的风险,保证了系统的安全。

四、系统安全性的具体实现

针对项目管理系统业务流程,为保证在整个项目管理过程中信息的完整性和保密性,系统设计时必须采取如下的安全措施。

项目管理系统采用的是由ASP.NET应用程序通过表单进行身份认证。通过这种方法,用户被引导到系统所提供的一个登陆表单,通过该表单,用户可以提供其证件,如果被认可,则可以继续进行管理工作,否则活动被取消,页面将重新定位到用户登陆界面。图1说明了本系统中采用的表单认证过程。

图1 表单认证过程

整个过程的步骤如下:

1、户向站点请求被保护的页面。

2、如果请求没有包含有效的认证Cookie,Web服务器将把用户重定向到web.config文件中Authentication标签的login-URL属性中指定的URL,该URL包含一个供用户登陆的表单。

3、当用户输入用户名密码后,表单将数据提交。

4、如果输入有效,则ASP.NET将在客户机上创建一个认证cookie。

这样,用户就能够被重新定向到最初请求的页面继续进行管理工作等。以下是代码片段:

系统利用表单认证具有灵活和强大的特性,系统扩充时所有新增的页面代码都会受到保护,不必为每个文件增加保护代码。而且认证的过程完全可以由系统定制,可以任意加入认证策略。通过上述的安全性设计,确保项目管理系统更稳定、安全、柔性更好。

项目管理系统如果统一采用Internet进行连接,由于现有的网络系统有相当多的安全漏洞,计算机操作系统的安全防护也十分脆弱,系统将承受巨大的安全风险。网络黑客可能会渗入系统,盗窃数据或恶意破坏记录。项目管理系统内部使用者也可能会有意或无意地将数据泄露出去。所以,本系统使用内外网相结合的架构,项目管理系统内部的运作在局域网中进行,外部的宣传和服务在Internet网中进行。

在该系统中,对于项目组的一每个用户设置了不同的系统角色。系统根据不同的项目组中不同角色的人设置不同的权限。项目管理员具有最高权限、其他用户的权限由项目管理设定,并可动态修改,以适应项目管理的需要。

在项目管理系统内部,系统的管理员对项目管理系统内部人员根据他们身份的不同赋予不同的角色,针对不同的角色,赋予他们不同的权限。由于整个系统被分为不同的功能模块,所以一个权限就代表着对某个模块或者某个模块的一部分的可操作性。因此每个用户根据他们角色,具有对应模块的操作权限,不允许操作非授权的模块。通过这种授权访问的方式保证了项目管理系统不会被非法访问和越权操作。图2为系统角色管理。

图2 系统角色管理

总之,系统为管理员提供了一个功能全面的管理平台,管理员能够方便地对角色、权限等进行管理,信息更新、维护等工作则全部由系统的普通用户完成。通过系统和项目权限管理,可以同时保证系统的安全性和数据的安全性,使得具有不同权限的用户只能使用相应的系统功能、浏览或维护相应的数据。

五、结束语

系统为管理员提供了一个功能全面的管理平台,管理员能够方便地对角色、权限等进行管理,信息更新、维护等工作则全部由系统的普通用户完成。通过系统和项目权限管理,可以同时保证系统的安全性和数据的安全性,使得具有不同权限的用户只能使用相应的系统功能、浏览或维护相应的数据。本文对系统的安全性进行了需求分析后,详细介绍了两种安全技术:基干角色权限的访问控制和ASP.NET的安全技术。并把这两种安全技术在本系统的应用进行了具体实现。

本文对采用基于ASP.NET构建的B/S结构的项目管理系统的安全模式设计进行了研究,这种基于W eb的应用系统的安全体系设计相对于传统的C/S模式.既要考虑数据访问的安全,又要考虑网络的安全。Web开发平台ASP.NET的安全访问机制使得Web的安全性和可靠性得到了基本的保障。采用B/S的三层架构,将显示层、中间层、数据层在逻辑上相互独立,减少了祸合度,保证了系统的安全。采用了身份验证、权限控制访问数据库等多种安全策略保证了数据的安全。限制了网络的入侵,最终保障了网络系统的安全。

[1]林海燕.项目管理在软件开发项目中的应用[J].《计算机系统应用》2003.9,P77~P79.

[2]盖江南,王勇,阎文丽等编著.ASP.NET+SQLSERVER动态网站设计宝典[M].北京:电子工业出版社.2006.

[3]李成楷,詹永照,茅兵.基于角色的系统访问控制[J].软件学报,2002,11(7):P 931-P 935.

[4]David Ferraiolo,RaviSandhu,Serban Gavrlia.Propose NIST Standard forRole-Based

Access Control.ACM Transactions on Information and System Security,2001,(4):224-227.

[5]李霞.基于_NET的研究生教学管理系统的设计与实现[D].硕士学位论文,中国地质大学,2006.24-25

猜你喜欢

表单管理系统数据库
基于大数据分析的智慧高速运营管理系统
基于大数据分析的智慧高速运营管理系统
基于James的院内邮件管理系统的实现
移动App表单组件体验设计
在线评审管理系统的建设与实践
浅谈网页制作中表单的教学
数据库
使用智能表单提高工作效率
数据库
数据库