需要从哪些方面来加强程序设计的安全性?

需要从哪些方面来加强程序设计的安全性?,第1张

1. 程序本身的安全性,如是否有溢出现象,非法数据如何出力等。

2. 使用安全性,能否保弯敬证用埋伍慎户使用安全。

3. 程序测试,一个好的程序是测试出来的,不是某个设计者橘早闭门造出来的。

系统安全性设计应遵循国家信息、网络安全以及信息系统应用等相关法律法规,严格控制系统建设运行中的资料信息监测、使用和管理,维护系统敏感信息安全。安全性设计由系统类、功能枣郑类、数据类、资源类四个部分组成。其中,系统类、功能类、数据类安全是业务相关的,需要具体问题具体处理。而资源类相对来说比较独立,在服务端体现为ETL、算法及服务器的运行权限,在客户端则体现为数据模型的使用权限。平台从以下四个方面设计安全性:

系统类: 在客户端,系统类安全设计访问IP段的限制、登录时间段的限制、连接数的限制、特定时间段内登录次数的限制等行岩判,为用户提供和其权限相关的用户界面,仅出现和其权限相符的菜单、 *** 作按钮;在服务端,则对URL程序资源和业务服务类方法的调用进行访问控制,是平台的第一道防护大门。

功能类: 功能类安全会对程序流程产生影响,例如用户在 *** 作业务记录时,是否需要审核,上传文件不能超过制定大小, *** 作按钮可控制的功能范围等。这些安全限制已经不是对入口的限制,而是对平台 *** 作流程的限制,这在一定程度上会影响平台的运行。

数据类: 数据安全设计包括两个层次,其一是字段级数据安全,即用户可以访问平台的哪些库、表、字段;其二是行级数据安全,即用户可以访问字段下面的哪条数据。以用户所在角色或组为条件进行分配。

资源类: 从硬件和软件上对平台的执行任务进行控制,用户通过客户端提交数据执行任务时,平台根据用户的级别、任务的重要程度,自动为任务排序并分配CPU、内存等计算资源,以便更好地利用有限的平台计算资源档改发挥更大的作用,集群的容量大小直接影响到任务运行的效率。

以上四个层次的安全设计,按粒度从粗到细的排序是:系统类、功能类、数据类和资源类安全。平台严格遵照国家信息、网络安全以及信息系统应用等相关法律法规,严格控制系统建设运行中的资料信息监测、使用和管理,维护系统敏感信息安全。

黄旭 王刚龙

(广州海洋地质调查局 广州 510760)

第一作者简介:黄旭,女,1974年生,广州海洋地质调查局信息资料所网络室,工程师。

摘要 本文阐述了由我局开发的基于B/S 模式的网站动态信息发布系统,描述了系统的基本模块和功能。此系统利用JavaBean组件技术集成程序代码,采用JDBC进行Web数据库访问,并给出了系统实现的一些关键性的代码。

关键词 JSP B/S 模式 动态信息发布系统 JavaBean

广州海洋地质调查局的国际互联网站于2003年建立,作为对外树立单位形象、展示我局最新科研成果、先进技术设备和手段的一个重要窗口。目前我局的互联网网站图文信息发布采用传统的手工制作网页的静态信息发布模式。这御陆衡种模式工作效率低,动态信息的时效性无法体现,给网络信息内容审核及管理带来诸多不便。这不利于发挥网站的作用。动态图文信息发布系统的研制目的是提高网站动态图文信息发布的自动化程度和工作效率,免去了烦琐的网页制作过程,使不懂得网页制作的人员也能进行网站动态信息内容更新,方便信息审核及管理。

作为一种成熟的动态网页开发技术,JSP是由SunMicrosystems公司倡导,许多公司参与一起建立的一种动态网页技术标准。JSP技术具有以下特点:①适应平台的广泛性,②较好的安全性,③组件开发的方便性[1]。考虑以上因素,在开发网站动态信息发布系统过程中我悉洞们采用了JSP技术。

1 系统结构模式

本系统是基于B/S(BroWser/Web Server)模式进行开镇做发的,具体来讲,采用如图1所示的三层次体系结构[2],包括:①表示层;②逻辑层;③数据层。

其中,表示层是互联网动态信息发布系统的用户接口部分,是实现用户与应用逻辑处理结果的交互界面,也是用户与Internet之间交互信息的窗口,由浏览器构成。逻辑层完成与信息发布系统有关的所有的事务逻辑,Web服务器是该层中的重要组成部分,它根据客户端的请求启动相应的进程来完成有关的事务处理,并将处理结果以HTML代码的形式,发送给客户端浏览器。信息发布系统主要由客户端浏览器、单位网站、信息发布系统和数据库四大部分组成(图2)。本系统采用Tomcat 5.0.28 作为JSP引擎嵌入到Web服务器,在该层中,为提高执行效率和安全性[3],通过JavaBean实现与数据库的连接。数据层是由数据库服务器所构成,它主要提供数据管理,对数据库数据进行读写,能够执行大量的数据的更新和检索,完成数据存储。本系统采用的数据库服务器是SQLServer2000。

图1 三层体系结构

Fig.1 Three tiers

图2 信息发布系统的四个部分

Fig.2 The four parts of the system of information publishing

2 系统基本功能模块

考虑到实际要求,设计了如图3所示的基本功能模块。下面就其中的主要模块进行功能分析。

2.1 系统登录

在系统登录模块中,主要是用于检验登录系统用户身份的合法性,并根据用户的身份动态定向到不同的页面,使得不同身份的用户具有不同的 *** 作权限。

2.2 新闻信息管理模块

主要用于用户进行新闻信息的发布、编辑、查看和审核等 *** 作。包括如下的基本 *** 作:

1)一级菜单 对前台显示的主菜单进行管理。

2)二级菜单 显示用户在后台已经发布的新闻信息,并提供让用户根据权限查看、编辑及删除已发布的信息的功能。

3)发布新闻 实现新闻信息的输入、编辑及预览和图片的上传等功能。

4)审核新闻 让审核权限的用户对新闻信息进行审核、编辑。

图3 信息发布系统的模块

Fig.3 The module of the information publishing’s system

2.3 用户管理模块

主要提供让管理员对用户信息、新闻信息进行基本维护和管理。

1)添加用户 用于管理员添加新用户并设置用户的权限。

2)查看/删除用户 用于管理员对已有用户进行管理。

3)更改用户密码 提供让用户修改初始密码的功能。

4)新闻统计 系统可按照相应的要求形成一个新闻信息发布统计表。

3 详细设计

3.1 系统平台的构建

J2 SDK是Java2的软件开发工具,是Java应用程序的基础。JSP是基于Java技术的,所以配置JSP环境之前必须要安装J2 SDK。本系统采用Tomcat作为JSP引擎。在软件安装完成后都要进行环境变量的配置。

3.2 采用JDBC技术实现数据库连接

数据库连接对动态网站来说是最为重要的部分,Java中连接数据库的技术是 JDBC(Java Database Connectivity),是一种用于执行SQL的Java API,由一组用Java语言编写的类和接口组成,它为数据库应用开发人员、数据库前台工具开发人员提供了一种标准的应用程序设计接口,使开发人员可以用纯Java API语言编写完整的数据库应用程序[4]。在开发中,我们采用JavaBean来对数据库连接和执行SQL语句等通用数据库 *** 作进行封装,避免直接对数据库进行 *** 作带来的工程浩大,代码过长,不易维护。同时为了节省时间和资源,避免因采用传统连接模式而导致数据库重启,我们采用了数据库连接池技术。主要代码如下:

Connection conn=null;

Statement stmt=null;

Resu1tSet rs=null;

Try

C1ass.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”);//加载sql驱动程序

conn=DriverManager.getConnection(“jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=gmgs”,user=“root”,PassWord=“”);//创建连接

stmt=conn.createStatement(Resultset.TYPE SCROLL SENSITIVE,Resultset.CONCURREAD_ONLY);

String sql=“select * from art Where id=ˊ”+id+“ˊ”;

Resu1tSet rs=sqlbean.eXecuteQuery(sql);//执行sql语句

conn.close();//向连接池归还连接[5]

3.3 利用JavaBean 访问数据库

JavaBean是一种Java类,通过封装属性和方法成为具有某种功能或者处理某个业务的对象。JavaBean被组织成为Package(数据包)以便进行管理,实际上就是把一组JavaBean一起放在某某目录中,每个类的定义前加上Package某某。把经编译成类的文件放在JSP服务器的特定目录下[6]。

在JSP中使用JavaBean需要以下步骤:

1)定义JavaBean 组件,将一组 JavaBean一起放在某个目录下,每个类的定义前加上Package,生成.java文件;

2)将定义的类用JDK的Javac命令编译生成.class文件的JavaBean类文件;

3)在JSP文件中调用JavaBean。方法如下:

设置要引用的JavaBean,生成JavaBean的一个实例,用<jsp:useBean>标记来完成。实例化一个JavaBean,就可以访问它的属性。通过使用<jsp:getproperty>标记来获得属性值,使用<jsp:setproperty>标记来改变JavaBean属性值[7]。

如:要完成用户注册功能,先定义一个名为 op user.java的JavaBean组件,它用add()方法将表单中用户填写的信息添加到数据库表user中,如果添加成功则返回true,否则返回false.在实现用户注册功能的页面register.jsp调用这个JavaBean,代码如下:

<jsp:useBean id=”user”scope=“Page”class=“gmgsinfo.run.op user”/>

//实例化

gmgsinfo.run.op user,在当前JSP页面内查找该JavaBean的标识符是user

if(user.add(request))//直接使用add()方法,用request对象为参数

⋯⋯

3.4 数据库描述

数据库共设计五个数据表。

管理员表字段包括管理员账号、密码、管理员名、所属部门、电话、权限。

审核表字段包括是否审核。

栏目表字段包括栏目名称。

新闻表字段包括新闻标题、所属栏目、副标题、是否审核、新闻作者、新闻发表人、添加时间、修改时间、所属部门、新闻内容、是否包含图片、审核人。

部门表字段包括部门名称。

3.5 程序描述

3.5.1 用户管理

信息发布系统的用户主要有三类:系统管理员、审核员和普通维护员。添加用户的流程是首先输入一个用户名,然后调用数据库确定该用户名没有被使用,其次填写用户信息表,设置用户的初始密码和权限,最后将用户信息写入数据库。用户登录的流程是用户提交登录表单后,需要调用数据库来判断该用户的账号与密码是否正确。如果正确则将用户名记录到Session对象中,如果不正确则返回登录界面重新登录。如果登录用户是系统管理员,将进入管理员用户界面;如果是普通用户将登录普通用户界面。用户登录后可以更改初始密码,修改后的信息将重新写入数据库。新闻统计表单是将已发表的新闻按照质量记录的要求以表格的形式显示出来,用户可直接通过打印机打印出来。

3.5.2 新闻信息管理

一级菜单表单是对在网站首页显示的主菜单进行管理。用户可以增加需要在首页显示的主菜单。二级菜单表单将用户在系统内发表的新闻全部显示出来。包括新闻标题、发表时间、所属上级菜单、新闻发表人、是否审核。用户可点击新闻标题预览新闻,可以修改或删除自己发表的新闻。当用户点击修改或删除选项时,系统将根据保存在Session对象中的用户名来调用数据库中该用户信息,判断该用户是否拥有权限。如果拥有权限则允许用户修改或删除该条新闻,否则系统将提示用户没有权限。在发表新闻表单中,用户只需在相应的文本框中输入信息,系统将自动生成网页并将信息保存到数据库中。其中文章内容栏是一个简易的网页编辑器,用户可对输入的新闻信息进行编辑。用户可通过上传图片选项将网页中的图片上传到数据库中。在新闻输入完成后,用户可以网页形式预览发表的新闻。在审核新闻表单中拥有审核权限的用户可对已发表的新闻进行审核,编辑新闻内容并重新保存到数据库。如果新闻已经通过审核,将显示在网站的首页。

3.6 系统流程分析

当用户登录到该系统,通过系统验证后,系统会自动将用户基本信息及用户权限信息保存在服务器端,此时,如果用户有相应的权限就可以进行用户及权限管理、栏目管理,以及信息发布、信息审核等 *** 作。

对于普通用户,登录进入系统后可以选择进行上述 *** 作。当用户选择某个模块并对其进行 *** 作时,系统将查询服务器端保存的该用户权限,验证合格后,系统把相应的信息或功能页面显示给用户,用户可以根据自己的权限对所浏览内容进行添加、编辑和删除 *** 作。如果用户需要发布信息,可点击发表新闻模块,在相应的标题栏中输入信息,将要发布的内容输入到文章内容栏中,系统将调用相应的模版形成网页。用户点击确定就可以预览刚刚制作的网页。若权限验证不合格,表示用户没有相应权限,系统将d出警告信息告知用户不能进行该 *** 作,确认警告信息后并不影响该用户继续进行其他有权限的 *** 作。

当用户以管理员身份进入系统后,系统默认管理员具有对于该系统维护、管理的最大权限,即管理员可以进行用户管理、用户角色管理、用户权限管理以及发布信息、文章管理、审核信息等 *** 作。每个用户都可以拥有多个角色,也就是说每个用户可以拥有多种权限。

4 结束语

JSP承袭了Java面向对象的程序语言能力和跨平台的优势,并能够与HTML紧密结合,与传统的CGI程序相比,JSP不仅编写、执行容易,也大幅度提高了系统的执行性能,提高了信息审核、发布和管理的工作效率。

参考文献

[1]任艳.应用JSP 进行数据库信息发布.计算机工程与应用,2002,38(7):212~214,249

[2]Marty Hall,Larry Brown.Servlet与JSP核心编程(第2版).北京:清华大学出版社,2004,(6)

[3]屈霞.基于JSP的数据库应用程序安全访问控制设计.电脑开发与应用,2005,18(6):15~16,19

[4]孙敏.JSP连接数据库方法探讨.电脑知识与技术,2005,3:21~22

[5]李兴锋,王移芝.基于JSP的Web动态数据库交互技术的探讨.计算机应用与软件,2005,22(4):26~27,127

[6]李媛,刘涤尘.一个使用JavaBeans连接数据库的JSP应用.2005,12(1):77~80

[7]孟宪虎,沈均毅.WEB数据库应用程序安全性设计的一种实现.计算机工程与应用,2002,9:119

The Dynamic Information publishing System Web of Guangzhou Marine Geological Survey Based on JSP

Huang Xu Wang Ganglong

(Guangzhou Marine Geological Survey,Guangzhou,510760)

Abstract:the article introduces the dynamic information publishing system,Which is based on B/S model and designed by the gmgs,describes the basic module and function of the system.The system uses the JaveBean techique to integrate the program code,uses the JDBC to access the Web database,and offers the key code of the system’s realizing.

Key Words:JSP B/S model The dynamic information publishing system web JavaBean


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12499730.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存