基于ASP+SQLServer的在线考试系统的安全策略探讨

2022-09-10

随着网络技术的快速发展, 网络考试系统越来越多的应用在各个考试领域。微软公司的MCSE考试、SUN公司的JAVA认证考试等都采用了计算机联网考试的形式, 国内各高校也相继开发出了自己的在线考试系统。当前的考试系统往往采用B/S (Browser/Server, 浏览器/服务器) 模式, 该模式采用T C P/I P、HTTP传输协议, 客户端通过Browser访问后台的数据库, 它是由浏览器、web服务器、数据库服务器构成的三层体系结构。

网络考试系统需要一个完整、庞大的数据库, 数据库资源包括考生信息、管理员信息、题目信息、试卷信息、考试信息等等。对于考试系统来说, 如果其中的核心数据和资料一旦泄露, 考试的公平性和权威性将大打折扣。网络考试系统处于开放的网络环境中, 面临着黑客的攻击, 安装在本地数据库中的试题和考生信息也有可能泄露。因此, 系统的安全性能显得尤其重要。

1 在线考试系统的安全目标和安全问题

在线考试系统的安全目标是保证考试的题库、答案、考生信息等重要数据不从考点泄露。而这些数据是存储在数据库中的, 因此网络考试系统的数据库是需要严密保护的。

网络考试的数据库面临以下几个安全问题。

(1) 用户越权或非法访问数据库。

(2) 非法用户入侵数据库获取、篡改考试系统的重要数据 (如试题, 成绩等) 。

(3) 系统的软硬件故障或因非法入侵删除数据。

2 ASP脚本安全隐患及解决方案

ASP脚本是采用明文方式编写的, 由于IIS的漏洞, 有可能导致ASP文件被泄露, 而经常会有开发人员将重要数据写在ASP文档中, 这样系统就会很轻易地被破坏、攻击。另外开发人员通常将包含文件命名为*.inc, 如果恶意用户猜测出文件路径, 也可下载文件从而可能窃取用户的密码信息。

对于ASP脚本, 可以采取如下措施保障安全。

(1) 对于系统敏感的数据, 如数据库连接字符串, 不要保存在文本文档中, 可以将其保存在Application对象中。

(2) 如果存在包含文件, 包含文件不要使用*.inc后缀名, 可以使用*.asp后缀。

(3) 不要不密码、物理路径直接写在程序中, 应该把密码和用户名保存在数据库中, 使用虚拟路径映射数据库。

(4) 对目录应设置不同的属性, 如Read、Excuti、Script。将站点中的asp文件、html文件、包含文件分开存放, 并对每个目录设置不同的权限, html文件目录设置只读权限, ASP文件目录设置Script权限, 数据库文件和包含文件目录取消其读权限。

(5) 对重要的程序和数据、源文件进行加密处理。以下是一种可解密加密方式, 函数Str Num对字符串进行编码, 函数Num Str将编码还原成字符串。

3 SQL Server的安全配置

3.1 使用安全的密码策略

密码策略是安全配置的第一步, SQL Server2000安装的时候, 如果是使用混合模式, 那么就需要输入sa的密码。密码不能过于简单, 另外养成定期修改密码的习惯。数据库管理员应该定期查看是否有不符合密码要求的帐号。

3.2 使用安全的帐号策略

由于SQL Server不能更改sa用户名称, 也不能删除这个超级用户, 所以, 我们必须对这个帐号进行最强的保护, 当然, 包括使用一个非常强壮的密码, 最好不要在数据库应用中使用sa帐号, 只有当没有其它方法登录到SQL Server实例 (例如, 当其它系统管理员不可用或忘记了密码) 时才使用sa。建议数据库管理员新建立一个拥有与sa一样权限的超级用户来管理数据库。安全的帐号策略还包括不要让管理员权限的帐号泛滥。

3.3 利用存储过程实现数据库的安全性

利用存储过程实现数据库的安全性的方法是给用户授予执行存储过程的权限, 而不授予修改表的许可权限。这样用户就不具备访问视图和表的权限, 而通过存储过程仍能够查询相应的数据信息。可以创建如下存储过程。

然后将存储过程的执行权限授予用户, 当用户执行该存储过程就可以查询到相应信息。

3.4 使用协议加密

SQL Server 2000使用的Tabular Data Stream协议来进行网络数据交换, 如果不加密的话, 所有的网络传输都是明文的, 包括密码、数据库内容等等, 这是一个很大的安全威胁。能被人在网络中截获到他们需要的东西, 包括数据库帐号和密码。所以, 可以使用SSL来加密协议。

3.5 利用视图实现数据库的安全性

视图是一个数据结果集, 其外表看起来像一个真正的数据库表, 其来源于表或者其它视图, 而这些表或者视图可以来自一个数据库中, 也可以来自多个数据库中。通过视图可以查询数据, 也可以修改数据, 但修改数据将受到限制。通过视图的权限设置, 用户只具有访问视图的权限, 但并不具有访问视图所引用的表的相应权限。这样可以利用视图可以实现以下功能:从试题库组卷, 限制访问敏感数据如答案信息和成绩信息, 隐藏复杂的数据库设计, 简化复杂查询。

通过使用不同的视图并对用户授予不同的权限, 不同的用户可以看到不同的结果集, 可实现行级或列级的数据安全性。

4 结语

对于网络考试系统, 应该最大限度防止考试信息泄露, 以上策略可以有效防止数据信息被窃取。在实际的应用中, 还有多种手段给系统进行多重保护, 从而使系统的安全性能更高更可靠。

摘要:目前网络在线考试系统应用越来越广泛。本文讨论了基于ASP+SQL Server的在线考试系统的安全目标, 从ASP脚本的安全策略和SQL Server的安全配置两方面来讨论考试系统的安全性能。

关键词:网络考试系统,ASP脚本,SQL Server安全配置

参考文献

[1] 胡标, ASP网络编程技术与实例[M].人民邮电出版社, 2004.

[2] 蒋本立.数据库原理及应用[M].中国铁道出版社, 2006.

上一篇:小学语文教学中“人文教育”的实现方法和途径下一篇:试论信息网络时代图书馆的发展趋势和发展原则