首页 > 范文大全 > 正文

网站设计中的安全性研究与实现

开篇:润墨网以专业的文秘视角,为您筛选了一篇网站设计中的安全性研究与实现范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:在计算机系统中,信息是指存储于计算机及其外部设备上的程序和数据,由于计算机系统中的信息涉及机密问题,因此极易受到敌对势力以及一些非法用户、别有用心者的威胁和攻击。加之几乎所有的计算机系统都存在着不同程度的安全隐患,延伸到个人信息的安全,保密问题越来越受到人们的重视。从系统与应用程序设计两个层面探讨网站设计中的安全问题。一方面,在系统层上通过下载最新补丁程序和采用NTFS格式等措施来提高网站安全性;另一方面,在应用程序设计中通过身份认证与加密来解决网站安全问题。本文阐述了在网站开发过程中如何提高安全性,以及如何进行数据库加密和解密,并举了相应的实例。

关键词:安全;网站;数据库加密

中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)32-1099-04

Research and Realization of the Safety in Website Design

HU Gang1, XIA Rong2

(1.Sichuan Information Technology College,Guangyuan 628017,China; 2.Science and Technology College of NCHU,Nanchang 330034,China)

Abstract: In the computer system, the information is to point the procedure on the equipments with data saving in calculator and its exterior. Because the computer information in the system involves secret problems, it is easily attached by ulterior motives by hostile influence and some illegal customers. Additionally almost all of the calculator systems contain latent crisis of the different degree, extending the safety of the personal information, the problem of keeping secret is more and more valued by people. This paper discusses the safety problems existing in website design from the system and applied program design.The safety of the net can be improved by loading the newest pitch program and adopting NTES format on the system layers.And the safety problems can be resolved by identifying the ID and by encrypting in applied program design. This paper introduces how to improve safety in the development of website, and points out how to encrypt and decrypt the database,and at the same time gives some examples.

Key words: Safety; Website; Database Encryption

1 引言

信息与通信技术迅速在多个领域取得了突破性进展,如实现了光纤密集波分复用的超大容量光通信系统,还有即将投入使用的具有多种业务、多种功能的第三代移动通信系统,再就是牵动全世界的、即将使100多年来的电话网发生变革的、在一个网上实现话音、数据和广播电视三网融合的新一代互联网。信息与通信如此神奇的发展,使当今社会生产力从工业化社会大大向信息化社会推进了一步,知识(科技、网络)经济已不可逆转地出现于市场商品经济的大潮中。可是,信息化社会赖以建立的物质基础――信息与通信网,却在万千世界中处于新生的、比较脆弱的位次,它的成长、它的安全性与可靠性,承受着来自两大方面的损害、攻击与破坏。一是来自信息与通信网设备系统本身的软件与硬件。由于当前工艺(技术)水平所限,它们不可避免地会存在弱点、缺陷、变质、老化、过期以及互串、互拆、过压、过流、击穿和烧毁等现象。为了设备系统的可靠性,为此建有庞大的支撑系统和完善的监视、监测、转换等功能的维护管理系统,还有冷、热备用以及替代体制等,以实现对信息与通信网自动或人为地更换、更新元部件和线缆;更换、更新软件版本;补充和扩展网络。其目的是使信息与通信网设备系统有满意的可靠性。

在网站设计中,网站自身的安全性非常重要,对个人信息的真实性和机密性的研究,具体的研究内容包含了以下的几个方面:

1) 软件安全

软件安全主要是指保证所有计算机程序和文件资料免遭破坏、非法拷贝、非法使用而采用的技术和方法。它的主要内容有:

① 软件的自身安全:防止软件丢失、被破坏、被篡改、被伪造,核心是保护软件自身的安全;

② 软件的存储安全:可靠存储(保密/压缩/备份);

③ 软件的通信安全:系统拥有的和产生的数据信息完整、有效,不被破坏或泄露;

④ 软件的使用安全:合法使用,防窃取和非法复制;

⑤ 软件的运行安全:确保软件的正常运行,功能正常。

2) 数据安全

个人信息的数据安全是指通过对数据采集、录入、存储、加工、揭穿地等数据流动的各个环节进行精心的组织和严格控制,防止数据被故意的或偶然的非法授权泄露、更改、破坏或使数据被非法系统辩识、控制。它包括以下内容:

① 数据库的安全;

② 数据加密技术;

③ 压缩技术;

④ 备份技术。

3) 网络安全

随着信息高速公路的建设和国际互联网的形成,个人信息通过网络传播也是很频繁的途径,网络安全是指为了保证网络及其安全而采用的技术和方法。主要包括:

① 网络安全策略和安全机制;

② 网络数据加密技术;

③ 密钥管理技术;

④ 防火墙技术。

2 操作页面控制算法的实现

某些非法用户跳过登录页面直接进入管理页面继而对信息进行非法操作。而使用的自定义的“cookies.asp”来阻止非法用户直接跳过而必须经过登录页面登录正确以后才能进行下一步的操作。其代码如下:

<%

if request.cookies("ershou")("administrator")="" or request.cookies("ershou")("ijob")<>"1" or session("admin_ijob")="" or request.cookies("ershou")("domain")="" then

response.redirect "login.asp"

end if

if Request.ServerVariables("SERVER_NAME")request.cookies("ershou")("domain") then

response.redirect "login.asp"

end if

%>

当用户未通过登录而直接进入其他的页面时,系统将自动还原到登录界面login.asp。

3 网站防注入及IP检测算法的实现

许多网站在程序编写时,没有对输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果进行分析,从而获取自己想要知道的信息,这就是所谓的SQL Injection。非法攻击者使用SQL注入的思路一般是:

1) SQL注入漏洞的判断,即寻找注入点;

2) 判定后台数据库类型;

3) 确定XP_CMDSHELL的可执行情况。如当前的用户具有数据库设置的SA权限且master.dbo.xp_shell扩展存储过程能够正确执行,则计算机就可以被完全控制也就完成了整个注入过程。

SQL防注入系统利用注入漏洞定义一个新的函数如下:

Function SafeRequest(ParaName,ParaType)

'--- 传入参数 ---

'ParaName:参数名称-字符型

'ParaType:参数类型-数字型(1表示以上参数是数字,0表示以上参数为字符)

Dim ParaValue

ParaValue=Request(ParaName)

If ParaType=1 then

If ParaValue="" or not isNumeric(ParaValue) then

Response.write "参数" & ParaName & "必须为数字型!"

Response.end

End if

Else

ParaValue=replace(ParaValue,"'","''")

End if

SafeRequest=ParaValue

End function

所以SQL防注入系统在目前很多系统中都有被使用。在IP检测的同时系统会自动产生数据库记录操作IP的详细情况,并加入了封锁/解封控制。录入数据库如表1所示。

4 网站数据库加密

一个网站数据库的保密性是很值得考虑的问题,在这里提供三种数据库保密方法:

1) 修改数据库的后缀名

修改数据库的后缀名为.asp放在网站的根目录下,当然cnn.asp中的数据库连接代码也得相应的修改:

<%

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

set conn=server.createobject("adodb.connection")

DBPath = Server.MapPath("news.asp")

conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath

%>

这样别人很难找到你的数据库文件,即便找到了除非他知道改后缀名,否则打开也是一堆asp代码,而不是数据库信息。

2) 利用Access自带的掩码来保密,不过这种方法的保密性较差,稍微懂些Access的人便能破解。

3) 利用加密函数,这种方法的保密性最强,它是利用一段asp代码建立一个加密函数,将需要加密的地方加密后再传给数据库,下面以具体实例来介绍:

利用MD5来实现对数据加密。它的作用是让大容量信息在用数字签名软件签署私人密匙前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数)。

例如,当用户登录的时候,系统把用户输入的密码计算成md5值,然后再去和保存在文件系统中的md5值进行比较,进而确定输入的密码是否正确。通过这样的步骤,系统在并不知道用户密码的明码的情况下就可以确定用户登录系统的合法性。这不但可以避免用户的密码被具有系统管理员权限的用户知道,而且还在一定程度上增加了密码被破解的难度。

对MD5算法简要的叙述可以为:MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。

在MD5算法中,首先需要对信息进行填充,使其字节长度对512求余的结果等于448。因此,信息的字节长度(Bits Length)将被扩展至N*512+448,即N*64+56个字节(Bytes),N为一个正整数。填充的方法如下,在信息的后面填充一个1和无数个0,直到满足上面的条件时才停止用0对信息的填充。然后,在在这个结果后面附加一个以64位二进制表示的填充前信息长度。经过这两步的处理,现在的信息字节长度=N*512+448+64=(N+1)*512,即长度恰好是512的整数倍。这样做的原因是为满足后面处理中对信息长度的要求。

MD5中有四个32位被称作链接变量(Chaining Variable)的整数参数,他们分别为:A=0x01234567,B=0x89abcdef,C=0xfedcba98,D=0x76543210。

当设置好这四个链接变量后,就开始进入算法的四轮循环运算。循环的次数是信息中512位信息分组的数目。将上面四个链接变量复制到另外四个变量中:A到a,B到b,C到c,D到d。

主循环有四轮,每轮循环都很相似。第一轮进行16次操作。每次操作对a、b、c和d中的其中三个作一次非线性函数运算,然后将所得结果加上第四个变量,文本的一个子分组和一个常数。再将所得结果向右环移一个不定的数,并加上a、b、c或d中之一。最后用该结果取代a、b、c或d中之一。

以一下是每次操作中用到的四个非线性函数(每轮一个)。

F(X,Y,Z) =(X&Y)|((~X)&Z)

G(X,Y,Z) =(X&Z)|(Y&(~Z))

H(X,Y,Z) =X^Y^Z

I(X,Y,Z)=Y^(X|(~Z)) (&是与,|是或,~是非,^是异或)这四个函数的说明:如果X、Y和Z的对应位是独立和均匀的,那么结果的每一位也应是独立和均匀的。

5 数据备份与恢复技术

任何一个安全系统都应该包括数据库的备份及恢复。

5.1 数据备份

用代码来实现数据库的备份,操作界面如图1所示。

数据库备份具体也由代码来实现:

Sub backupdata()

Dbpath=request.form("Dbpath")

Dbpath=server.mappath("Dbpath")

bkfolder=request.form("bkfolder")

bkdbname=request.form("bkdbname")

Set Fso=server.createobject("scripting.filesystemobject")

if fso.fileexists("dbpath") then

If CheckDir(bkfolder) = True Then