网络办公系统设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1引言
随着信息技术和网络建设的不断发展,网络办公系统以其方便、快捷、高效的特点成为政府、企事业单位和电子商务的首选。网络办公系统不仅可以实现内部各级部门之间以及内外部之
间办公信息的收集与处理、流动与共享和辅助决策,还可以改变传统的集中办公模式,实现
随时随地办公,节约办公成本,提升管理效益。本文着重介绍基于B/S架构和技术的网络办公系统的设计实现和一些关键技术。
2 简介
是Microsoft公司推出的新一代建立动态WEB应用程序的开发平台,它是.NET框
架的一部分,可以使用Visual 、C#和Java 等任何.NET兼容的语言
编写应用程序,使得编程开发人员非常容易上手。具备验证、缓存、状态管理、调
试和部署等功能,为开发WEB应用程序提供了完备的解决方案。内置丰富的服务
器端控件,开发人员可以方便地对它们编程来实现一些功能,很大程度上提高了工作效率,
节约开发成本。在编程上,使用可以实现页面逻辑和业务逻辑的分离,将前台显示部分与后台代码分开,使程序代码看起来更为简洁,有利于程序的调试和修改。在安全性方面,与ASP相比,不但支持常规windows身份验证,还提供了Passport和cookie两种不同类
型的登录和身份验证方法。同时,还可以实现基于角色的安全设计,为不同角色的
用户指定不同的安全授权。可伸缩性好,其允许使用跨服务器会话(Cross - Server Sessions),其会话状态可以被另一台机器或另一个数据库上的其他的进程所维护,也更有利于WEB服务器的扩展。
3 系统架构与硬件设计
网络办公系统一般可采用B/S架构(浏览器和服务器)或C/S架构(客户端和服务器)实现。C/S架构一般部署于专用网络,对终端硬件设备要求高,适用于信息安全性较高的用户群体,一般军队、银行等机构应用较多。目前,应用比较广泛的是B/S架构的网络办公系统,相对
于C/S架构,它适应性更强,对硬件和平台没有要求,Windows系统、Linux系统,甚至是
智能手机上,只要能联网、有网页浏览器均可作为用户终端;采用B/S架构的系统,平时只
需要对服务器进行维护和升级,方面构件个别的更换,整体系统开销较小。
上图所示为B/S架构的网络办公系统硬件结构。WEB服务器主要用来存储WEB程序、运行IIS服务,和终端组成用户逻辑,和数据库服务器组成业务逻辑,主要负责处理用户请求,进行权限审查、条件判断、数据解析和组装回发,是连接前端和后端的中间件。数据库服务器
是负责存储和管理数据的,其数据供WEB服务器操作。为提高系统安全性,通常一般采用WEB服务器和数据库服务器分离的设计,数据库服务器只对WEB服务器提供服务,不至于
暴露在互联网中,将网络嗅探、的可能性降到最低。此外,WEB服务器和数据库服务器分离,数据库服务器可以只提供服务而不必处理其它服务,处理效率更高。当然,对于经济条件有限,且对数据安全性和运行速度没有过高要求的用户也可将WEB服务器和数据库服务器部
署在一起。
4系统软件设计
现在常用的网络办公系统一般包含用户身份验证、人员信息管理、物资信息管理、个人办公
资料管理、短消息管理、通知公告管理、公文管理、权限管理和系统管理等功能模块,并针
对不同角色提供差异化网络服务。软件实现上较多采用B/S架构的三层结构分层开发,提高
开发效率的同时增强系统安全性。
上图所示为三层结构的示意图。通常三层架构就是将整个WEB应用划分为:表示层(UI)、逻辑层(BLL)和数据层(DAL),充分体现“高内聚,低耦合”的思想。通俗讲表示层就是
程序展现给用户的人机交互界面,用于接收用户输入的数据和显示数据。业务逻辑层也就是
程序代码层,主要用于制定业务规则、实现业务流程,按照表示层指令对数据进行处理,是
表示层和数据层沟通的桥梁。数据层直接数据库进行操作,实现数据的增添、删除、修改、
更新、查找等功能。
编译环境通常使用微软提供的Visual Studio,编程语言上可采用、C#、
C++和Java 等。在这里推荐使用Microsoft推出的C#,它兼具C++和JAVA
的功能和特点,是面向对象的编程语言,具有良好的封装性、继承性和多态性。C#可采用编
写类的方式对代码进行封装,封装后代码逻辑清晰,易于管理,其它程序可方便调用,并不
需要了解其内部的代码结构。特别是业务逻辑和页面分离后,无论页面设计如何改变,程序
代码都不必做任何改动。继承性和多态性使得代码的可重用性大大提高,最大程度减少开发
工作量。另外,在.NET平台无论使用哪种开发语言,不同开发语言编写的程序可以无缝集成,也就是说一种语言可以任意调用其它语言编写的程序模块,能够有效解决开发团队成员使用
不同编程语言时的协作问题。
5 安全性设计
上图为WEB应用程序的安全框架。任何客户Http请求都要经过三层验证,首先是进行IIS
验证,通过后才能进行身份验证。通过了的身份验证后,在对数据库进
行存取、修改和删除等操作时也应获得数据库的身份验证,每一步的身份认证是相互关联,
缺一不可。应用中最常用的加密形式是 SSL(安全套接字层协议),在WEB服务器与浏览
器间进行通信时使用SSL创建并交换密钥,对客户端与服务器端的通信进行加密,电子商务
站点一般采用这种方式保护信用卡信息。关键技术如下:
(1)防SQL代码注入式攻击。所谓SQL代码注入式攻击是指恶意用户在页面文本框输入查
询数据时利用转义符将自己写的恶意SQL代码附加到正常SQL语句中,用以破坏数据库。
为防止注入式攻击,一方面要在数据库设计时对用户赋予最小权限,另一方面,在编程时使
用Parameters集合来构建安全的SQL语句,将用户输入均当作文本进行处理。同时,建立长
度和类型检查机制,任何错误的输入都会引发异常处理。
中表单验证安全控制。通过登录页面把用户名和密码发往服务器进行验证,
通过验证后,根据不同的用户身份进行不同的授权,执行不同的操作处理。授权是
基于目录的,可以针对某个目录来设置访问权限。此外,为防止攻击者编写程序重
复登录破解密码,可以采用动态生成的图形码或附加码进行验证。
2.数据库安全设计。在设计数据库时,应根据不同功能需要对需要访问的表赋予相应
的插入、修改、删除、执行权限,原则上,给予用户最小的操作权限。数据库表之
间的关系建立后,应在数据库里创建事务来进行处理,以确保数据的一致性,避免
错误删除数据。同时,在关键数据的保护上采用加密算法,增加数据安全性,最常
用的是MD5加密算法。为进一步增强安全性,可给加密的字符串加上前缀和后缀,
然后进行MD5加密,这样攻击者就无法判断加密字符串的加密规则了。
6 关键技术
(1)数据验证技术。为了更好的加强Web应用程序的安全性(如防止脚本入侵等),
提供了服务器端的验证控件,用于直接在网页的客户端对用户的输入数据进行验证。当用户输入错误,验证控件便会显示错误信息,并提示用户如何输入正确的信息。如用户名