具有动态口令认证机制的网上投票系统的设计

具有动态口令认证机制的网上投票系统的设计[java毕业论文下载]

具有动态口令认证机制的网上投票系统的设计

  

随着网络技术的迅速发展,传统的投票方式已经不能满足人们的需要。而网上投票系统除了能够完成传统的功能之外,更具有时效高和范围广的优点,更符合现代社会的需要。

具有动态口令认证机制的网上投票系统的设计是采用ASP和SQL Server2000技术开发的简易投票系统,并在用户登陆过程中设置动态验证码,提高系统的安全性。它实现了以下功能:投票、结果查看、增加、删除及搜索投票等。本论文首先介绍了网上投票系统的概念及和适用范围。在系统开发环境中主要对ASP、SQL和动态口令认证机制的基本概念作了详尽的介绍。接着通过E-R图说明数据库的搭建和数据库的设计。然后介绍了本系统的总体设计,包括:系统结构和总体功能设计。论文以功能模块图的形式说明了功能的设计并给出了部分核心代码及主要功能界面图。 

 

关键词网上投票系统;ASP;SQL;动态验证码

 

The design of the on-line vote system with the dynamic password authentication scheme

Abstract

With the rapid development of network, the traditional vote method has already can't satisfied people's demanded. But in addition to completing traditional function, "the on-line vote system" has time limited efficacy more high and the scope wide advantage, meet the demand of modern society more.

The design of the on-line vote system with the dynamic password authentication scheme is a simple vote system have developed by ASP and SQL Server2000 technique, and established a dynamic verifiable code in the process of the customer login the system, enhanced system’s security. It can be effective implement the function of voting, examining, adding,deleting and searching votes. To start with, this thesis introduces the basic concept and the appliance scope of the on-line vote system. After that, the thesis make detailed introduction to the basic concept of the ASP, the SQL and the dynamic password authentication scheme in the part of the development environment of the system. Then it elucidates the creation of the database by the E-R diagram and the design of the database. Introduced the total design of this system immediately after, include: the system structure designs and the total function design. With the form of the function diagram, thesis explained the design of function, showed core code and the system circulate interface of the main function.

 

Key words: The on-line vote system; ASP; SQL; The dynamic verifiable code

 

目  录

论文总页数:20页

 

1 引言 1

1.1网上投票系统的概念 1

1.2网上投票系统概念的提出 1

1.3网上投票系统的适用范围 1

1.3.1什么样的主题适合做网上投票 1

1.3.2网上投票样本的合理性 2

1.3.3网上投票的程序与方法 2

2 系统体系开发环境 2

2.1系统的硬件环境 2

2.2技术上配合 3

2.3 ASP简介 3

2.4 SQL简介 4

2.5动态口令认证技术 6

2.5.1验证码起源 6

2.5.2验证码实现流程 6

2.5.3网上投票系统中的验证码的作用 7

3 数据库的搭建 7

3.1 E-R图 7

3.2数据库的设计 8

3.2.1用户信息 8

3.2.2投票信息 9

3.2.3投票选项 9

3.2.4管理员信息 10

4 系统详细设计 10

4.1具有动态口令认证机制的网上投票系统的结构 10

4.2系统详细功能设计 11

4.2.1用户注册、登陆和和验证模块 11

4.2.2用户投票模块 13

4.2.3投票管理模块 15

结    论 18

参考文献 18

致    谢 19

声    明 20

 

 

1 引言

随着计算机技术的飞速发展,尤其是网络技术的超速发展,带动了信息的广泛交流,人们每天需要大量的信息来充实自己,传统的投票和调查方式已经不能满足我们的需要,针对这种情况,网上投票系统应运而生。

网上投票系统除了能够完成传统的功能之外,更具有时效高和范围广的优点,更符合现代社会的需要。从国际互联网到校园网,企业局域网,各种网上投票系统随处可见,意见调查,用户信息统计,经营情况调查都可以作为投票的内容,网上投票系统凭借其方便快捷等特点,已经成为互联网资源中不可缺少的一部分,并且,随着网络技术的发展,网上投票系统的作用将会越来越大。据新闻报道,日本政府正投资10亿日元开发电子投票系统用于选举,荷兰、比利时和巴西等国家已经开始在部分地区使用网上投票系统,可见其巨大的发展潜力。

然而,在计算机网络中,任何方便实用的技术都必须建立在信息安全这块基石上。一项网络技术的安全性,也是决定着想技术成败的关键性的性质。而具有动态验证的网上投票系统既能使信息的保密性得到保证,又能确认投票者身份的有效性与唯一性,这样才能保证统计结果的真实有效。

1.1网上投票系统的概念

网上投票调系统是一种在网站上提出投票题目,由用户在线投票并对调查投票的统计结果直接显示的调查工具。网站管理方可以通过网上调查并对投票结果自动进行系统分析后得出有用信息,如浏览用户对某产品或服务的看法等,是企业利用网站低成本进行市场调查的重要手段。

1.2网上投票统概念的提出

网络的快速发展和计算机的广泛普及,为解决传统民意调查存在的缺点和提出网上投票系统概念提供了物质基础。人们针对传统的民意调查存在的不足,开发了网上投票系统,大大提高了调查的时效性。

1.3网上投票的适用范围

从技术上来说,网上投票是十分简便的,时效性也强。但是目前网上的民意调查似乎还有一定的随意性,没有按照严格的民意调查的程序与方法进行。网上调查与传统民意调查有着很大不同,值得我们从各个角度去认识。我个人认为,至少以下方面是需要关注的。 

 

1.3.1什么样的主题适合做网上投票

网上投票对象只能来源于网络的使用者,而目前这部分使用者具有一定的特殊性,特别是在中国。据CNNIC 2006年9月公布的调查结果显示,我国互联网继续保持持续、稳定的增长态势。其中网民数、上网计算机数分别达到了11000万人、4950万台,与上年同期相比分别增长了18.1%和19.0%。

在网民的特征结构方面,男性、未婚、30岁以下、大学本科以下、月收入在2000元及以下(含无收入)网民的比例依然在网民各特征数据中占据主要地位,所占比例分别为58.7%、57.9%、82.6%、70.8%、70.9%,其中未婚、30岁以上网民的比例与上年同期相比都有所上升,但男性网民比例、大学本科以下、月收入在2000元及以下(含无收入)网民所占比例与上年同期相比有所下降;在职业方面,学生所占比例超过了总网民的三分之一,达到了35.1%,其次是企业单位工作人员,占总数的29.6%,排在第三位的是学校教师及行政人员,所占比例为7.3%,国家机关、党群组织工作人员所占比例为6.6%,事业单位工作人员所占比例为6.5%,其他职业的网民所占比例都在5.0%以下。

因此,如果把一些大多数网民日常工作生活未涉及的调查内容作为网络投票的主题,结果就会产生偏差。找到适合于网络调查的主题,是调查结果合理、有效的前提。

 

1.3.2网上投票样本的合理性

传统问卷调查,调查方可以根据需要抽取样本,以保证其合理性。但网上投票调查基本上取决于上网用户的主观意愿。而他的心绪、性格、当时环境等等因素,会对他是否主动参加调查起作用,也就会在一定程度上影响样本的合理性。

 

1.3.3网上投票的程序与方法

由于网络的特点,网上投票调查与传统的调查有着很大的区别。因此,研究出一套适合网络特点的调查程序与方法是必要的。本网上投票系统的调查程序与方法将在之后的章节详细阐述。

2 系统体系开发环境

2.1系统的硬件环境

本系统在开发过程中以SQL为基础,ASP编程。计算机和服务器的最低要求:

(1)处理器:PentiumIII 600MHz或者更高;

(2)内存(RAM):至少64MB,建议128MB或更高;

(3)硬盘空间:系统驱动上需求900MB的可用空间,安装驱动上要求3.3GB的可用空间,可选的MSDN库文档另需1.9GB的可用空间;

(4)显示器:需要设置成1024x768模式或者更高分辨率;

(5)其他:CD-ROM或者DVD-ROM驱动器以及Microsoft鼠标或者兼容的指针设备。

2.2技术上配合

个人计算机的出现加速了企业信息化进程,网络开发的新模式也日趋成熟,发展到现在,网络的开发模式已从工作站/服务器模式、Client/Server模式发展到以浏览器/web服务器体系结构模型的Browser/Server模式。浏览器/web服务器最基本的形式是使用web服务。浏览器/web服务器的出现实现了一个三层应用架构,它将客户机/服务器模型以及那些基于主机的处理模型的最好特性聚集在一起了,这一体系结构的目标是容易配置、信息的集中管理和简单的资源管理在这个开发思想中,服务器的负责向用户提供信息和要求的数据,另外通过客户浏览器软件,服务器是呈现给用户的图形化用户界面显示由服务器发送的住处服务器控制住处的布局和内容,这使信息的控制和管理非常可靠,计算机网络从体系结构到实用技术已逐步走向系统化、工程化、科学化。

在进行"网上投票系统"的开发时,用到了许多计算机方面的相关技术,其中也用到了许多新的开发技术和方法,这些也是完成系统开发的关键性技术,最主要的是:软件工程、ASP技术、三层应用系统框架结构、SQL数据库技术等。

2.3 ASP简介

Microsoft Active Server Pages 即我们所称的ASP,其实是一套微软开发的服务器端脚本环境,ASP内含于IIS 3.0 和4.0 之中,通过ASP我们可以结合 HTML网页、ASP指令和ActiveX元件建立动态、交互且高效的WEB服务器应用程序。有了ASP你就不必担心客户的浏览器是否能运行你所编写的代码,因为所有的程序都将在服务器端执行,包括所有嵌在普通HTML中的脚本程序。当程序执行完毕后,服务器仅将执行的结果返回给客户浏览器,这样也就减轻了客户端浏览器的负担,大大提高了交互的速度。以下罗列了Active Server Pages所独具的一些特点:

(1)使用VBScript、JScript等简单易懂的脚本语言,结合HTML代码,即可快速地完成网站的应用程序。

(2)无须compile编译,容易编写,可在服务器端直接执行。

(3)使用普通的文本编辑器,如Windows的记事本,即可进行编辑设计。

(4)与浏览器无关(Browser Independence),用户端只要使用可执行HTML码的浏览器,即可浏览Active Server Pages所设计的网页内容。Active Server Pages所使用的脚本语言(VBScript、Jscript)均在WEB服务器端执行,用户端的浏览器不需要能够执行这些脚本语言。

(5)Active Server Pages能与任何ActiveX scripting语言相容。除了可使用VBScript或JScript语言来设计外,还通过plug-in的方式,使用由第三方所提供的其他脚本语言,譬如REXX、Perl、Tcl等。脚本引擎是处理脚本程序的COM(Component Object Model)物件。

(6)Active Server Pages的源程序,不会被传到客户浏览器,因而可以避免所写的源程序被他人剽窃,也提高了程序的安全性。

(7)可使用服务器端的脚本来产生客户端的脚本。

(8)物件导向(Object-oriented)。

(9)ActiveX Server Components(ActiveX 服务器元件)具有无限可扩充性。可以使用Visual Basic、Java、Visual C++、COBOL等编程语言来编写你所需要的ActiveX Server Component。

运行 ASP 所需的环境:

·Microsoft Internet Information Server version 3.0/4.0 on Windows NT Server

·Microsoft Peer Web Services Version 3.0 on Windows NT Workstation

·Microsoft Personal Web Server on Windows 95/98

ASP的处理过程。当一个用户浏览器(下图所示:Web Client)从Web服务器(下图所示:Web Server)要求一个ASP网页时,Web服务器会将这个ASP文件发送给 Web 服务器的ASP引擎(下图所示:ASP Engine),ASP引擎则将该ASP网页中所有的服务器端脚本(下图所示:<%和%>之间的代码)转换成HTML代码,然后将所有HTML代码发送给用户浏览器。见下图所示:

 

图2-1 ASP处理过程

2.4 SQL简介

SQL全称是“结构化查询语言(Structured Query Language)”,最早的是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEM R开发的一种查询语言,它的前身是SQUARE语言。SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言,得到了广泛的应用。如今无论是像Oracle,Sybase,Informix,SQL server这些大型的数据库管理系统,还是像Visual Foxporo,PowerBuilder这些微机上常用的数据库开发系统,都支持SQL语言作为查询语言。

Structured Query Language包含4个部分:数据查询语言DQL-Data Query Language SELECT;数据操纵语言DQL-Data Manipulation Language INSERT,UPDATE,DELETE;数据定义语言DQL-Data Definition Language CREATE,ALTER,DROP;数据控制语言DQL-Data Control Language COMMIT WORK,ROLLBACK WORK。

SQL的优点:SQL广泛地被采用正说明了它的优点。它使全部用户,包括应用程序员、DBA管理员和终端用户受益非浅。 

SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集。所有SQL语句接受集合作为输入,返回集合作为输出。SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。SQL不要求用户指定对数据的存放方法。这种特性使用户更易集中精力于要得到的结果。所有SQL语句使用查询优化器,它是RDBMS的一部分,由它决定对指定数据存取的最快速度的手段。查询优化器知道存在什么索引,哪儿使用合适,而用户从不需要知道表是否有索引,表有什么类型的索引。

SQL可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、应用程序员、决策支持系统人员及许多其它类型的终端用户。基本的SQL命令只需很少时间就能学会,最高级的命令在几天内便可掌握。SQL为许多任务提供了命令,包括:

(1)查询数据;

(2)在表中插入、修改和删除记录;

(3)建立、修改和删除数据对象;

(4)控制对数据和数据对象的存取;

(5)保证数据库一致性和完整性。

以前的数据库管理系统为上述各类操作提供单独的语言,而SQL 将全部任务统一在一种语言中。

由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个RDBMS转到另一个。所有用SQL编写的程序都是可以移植的。

2.5动态口令认证技术

动态口令技术是对传统的静态口令技术的改进,它采用双因子认证的原理,即用户既要拥有一些东西(something you have),如系统颁发的Token(令牌),又要知道一些东西(something you know),如启用Token的口令。当用户要网上投票登录系统时,首先要输入启用Token的口令,其次还要将Token上所显示的数字作为系统的口令输入。Token上的数字是不断变化的,而且与认证服务器同步,因此用户登录到系统的口令也是不断地变化的(即所谓的“一次一密”)。

双因子认证比基于口令的认证方法增加了一个认证要素,攻击者仅仅获取了用户口令或者仅仅拿到了用户的令牌访问设备,都无法通过系统的认证。而且令牌访问设备上所显示的数字式不断地变化,这使得攻击变得非常困难。因此,这种方法比基于口令的认证方法具有更好的安全性,在一定程度不同上解决了基于静态口令的认证方法所面临的威胁。

动态口令认证技术具体的实现即是验证码。

所谓验证码,是将一串随机产生的数字或符号,生成一幅图片, 图片里加上一些干扰象素(防止OCR),由用户肉眼识别其中的验证码信息,输入表单提交网站验证,验证成功后才能使用某项功能。验证码可防止大规模匿名操作的发生,如某些用户利用软件自动注册、登录、投票等不公正行为。而加上随机的验证码之后,软件不可能计算出一样的验证码,因此就无法投票了。

 

2.5.1验证码起源

因为攻击者会使用有害程序注册大量的Web服务帐户(如Passport)。攻击者可以使用这些帐户为其他的用户制造麻烦,如发送垃圾邮件或通过同时反复登录多个帐户来延缓服务的速度。在大多数情况下,自动注册程序不能识别此图片中的字符。简单的说呢,就是防止攻击者编写程序,自动注册,重复登录暴力破解密码。验证码技术应运而生。

 

2.5.2验证码实现流程

服务器端随机生成验证码字符串,保存在内存中,并写入图片,发送给浏览器端显示,浏览器端输入验证码图片上字符,然后提交服务器端,提交的字符和服务器端保存的该字符比较是否一致。一致就继续,否则返回提示。攻击者编写的robot程序,很难识别验证码字符,顺利的完成自动注册,登录。而用户可以识别填写,所以这就实现了阻挡攻击的作用。而图片的字符识别,就是看图片上的干扰强度了。就实际的效果来说,验证码只是增加攻击者的难度,而不可能完全的防止。

2.5.3网上投票系统中的验证码的作用

因为WEB站有时会碰到客户机恶意攻击,其中一种很常见的攻击手段就是身份欺骗它通过在客户端脚本写入一些代码,然后利用其客户机在网站反复登陆,或者攻击者创建一个HTML窗体,其窗体如果包含了注册窗体或投票窗体等相同的字段,然后利用“http-post”传输数据到服务器,服务器会执行相应的创建帐户,提交垃圾数据等操作,如果服务器本身不能有效验证并拒绝此非法操作,它会很严重耗费其系统资源,降低网站性能甚至使程序崩溃。

而现在流行的判断访问WEB程序是合法用户还是恶意操作的方式,就是采用动态口令技术。本网上投票系统采用的方法是为用户提供一个包含随即字符串的图片,用户必须读取这些字符串,然后随登陆窗体或者投票窗体等用户创建的窗体一起提交。因为人的话,可以很容易读出图片中的数字,但如果是一段客户端攻击代码,通过一般手段是很难识别验证码的。这样可以确保当前访问是来自一个人而非机器。

3 数据库的搭建

3.1 E-R图

E-R如下:

 

 

图3-1 E-R图

数据库连接程序:

<%

Set conn = Server.Createobject("ADODB.Connection")

conn.open "Driver={SQL Server};server=(local);uid=sa;pwd=;database=a;"

%>

3.2数据库的设计

3.2.1用户信息

在用户注册时,用于存储“用户帐号”“用户密码”“用户真实姓名”“用户电话”“用户电子邮件”“用户地址”“用户备注”等相关信息。

 

 

 

 

表3-1 用户信息表(userinfo)

列名

数据类型

说明

id

char(6)

用户帐号(主键)

pwd

char(6)

用户密码

name

varchar(20)

用户真实姓名(关键字)

tele

char(15)

用户电话

mail

varchar(40)

用户电子邮件(关键字)

address

varchar(40)

用户地址

comment

varchar(100)

用户备注

 

 

3.2.2投票信息

存储投票相关信息如:“投票主题”“投票目的”“投票内容”“投票选项”“投票备注”。

表3-2 投票信息表(voteinfo)

列名

数据类型

说明

topic

varchar(30)

投票主题(主键)

intension

varchar(100)

投票目的

content

varchar(100)

投票内容

choice

varchar(30)

投票选项

comment

varchar(100)

投票备注

 

 

3.2.3投票选项

各投票主题的“投票选项”及对应的投票数。

 

 

 

 

 

 

 

 

表3-3 投票选项表(choice)

列名

数据类型

说明

topic

varchar(30)

投票主题(主键)

one

varchar(30)

选项1

two

varchar(30)

选项2

three

varchar(30)

选项3

four

varchar(30)

选项4

five

varchar(30)

选项5

count1

int

选项1的投票数

count2

int

选项2的投票数

count3

int

选项3的投票数

count4

int

选项4的投票数

count5

int

选项5的投票数

 

 

3.2.4管理员信息

表3-4 管理员信息表(admininfo)

列名

数据类型

说明

id

char(6)

管理员帐户(主键)

pwd

char(6)

管理员密码

 

 

4 系统详细设计

4.1具有动态口令认证机制的网上投票系统的结构

考虑到本系统的实用性、效率、应用范围等因素,主要设计了如下几个模块:用户注册、登陆和和验证模块,用户投票模块,投票管理模块三个部分。

(1)用户注册、登陆和验证模块

此完成的功能主要是能记录用户的注册信息,存储在数据库,并在登陆时核对与在数据库中的数据是否匹配。并完成动态口令验证功能。

(2)用户操作模块

此模块完成的功能一是显示投票项,记录用户所投选项,更新数据库,能够显示投票结果,二是用户能够搜索投票。用户投票模块分为3个子模块:用户投票模块、显示投票模块和搜索投票模块。

(3)投票管理模块

此模块完成的功能是能够增加、删除和修改投票主题和投票信息,并在数据库中对数据进行相应的操作。

本系统的结构如下所示:

图4-1 系统结构图

4.2系统详细功能设计

4.2.1用户注册、登陆和验证模块

模块图如下:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

图4-2 用户信息模块

(1)用户注册:

用户可以通过这一功能在网站上将自己的信息通过填写注册窗体的形式,发送到后台数据库中并存储,以便在网站上进行投票。用户注册功能能提高投票信息的公正性和有效性,防止部分人员随意投票。

用户注册界面:

 

 

 

 

 

 

 

 

 

 

 

 

图4-3 用户信息注册界面

(2)用户登陆:

用户注册后就可以在登陆框中输入正确的用户名和密码,并通过动态口令认证,便可登陆到网站。

(3)登陆验证:

验证原理:使用动态编程语言ASP,随即生成一个随机4位数字。生成以后,用GD库的支持生成一张根据随机数来确定的图片,把随机数写入到session中,传递到要验证的页面,生成的图片显示给登陆者,并要求登陆者输入该随机数内容,提交到验证页面,验证session的内容和提交的内容是否一致。

关键代码:

dim GetCode,valicode

GetCode=Cstr(request("getcode"))

valicode=Cstr(Session("validatecode"))

if GetCode<>valicode then

response.write ("验证码输入错误,请重输入")

response.end

运用动态口令认证机制,登陆时输入所显示的动态验证码,以此防止恶意重复性投票,提高了系统的安全性。

用户登陆界面:

 

 

 

 

 

图4-4 用户登陆界面

 

4.2.2用户投票模块

模块图如下:

图4-5 用户投票模块

(1)设计用户操作主界面:

用户操作一共包含需要3个方面,即开投票页面,显示投票结果页面,搜索投票信息页面。

(2)进行投票:

在“投票选项”中选中所选类别提交后,所选内容会存储在数据库中,并在投票管理页面中显示投票结果。

投票界面:

 

 

 

 

 

 

图4-6 投票界面

(3)显示投票结果:

用户提交投票信息后,数据存入数据库并计算出每个投票选项的所得投票数,并将投票数最多的那一选项的信息显示到此页面。

显示投票结果界面:

 

 

 

 

 

图4-7 显示投票结果界面

(4)搜索投票:

用户可在搜索投票模块搜索自己想要了解的投票的具体内容。首先是搜索主题,然后转到相应主题的相关投票信息,实现数据库数据的读取。

关键代码:

<%

op=request("op")

if not op="投票搜索" then

%>

<%

else

topic=request("search")

set rs=server.CreateObject("adodb.recordset")

  rs.open "select dbo.Greatest('"&topic&"') as re",conn,1,3

if not rs.eof then

%>

搜索投票界面:

 

 

 

图4-8 搜索投票界面

 

4.2.3投票管理模块

模块图如下:

图4-9 投票管理模块

具有动态口令认证机制的网上投票系统的设计[点击下载]

如需要全部源码,联系QQ:2812491287如需要全部源码,联系QQ:2812491287

评论