视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
电子商务网站安全技术论述
2025-09-30 19:49:39 责编:小OO
文档
杭州师范学院

本科生毕业论文(设计)

(2000级2004届)

论文(设计)题  目:电子商务网站整体结构及安全技术论述(The whole structure of e-commerce Web site and safe practice are described )

作              者:王 红 振

二 级 学 院、专 业:信息工程学院、电子信息工程

班              级:电子信息工程001

指 导 教 师(职称):尤姗姗(讲师)

论   文   字    数:116字

论 文 完 成 时  间:2004年4月20日星期二

杭 州 师 范 学 院 教 务 处 制

目        录

摘要………………………………………………………………………   4

Abstract……………………………………………………………………… 5

第一章    引言…………………………………………………………………  6

    1.1    何为电子商务…………………………………………………………………   6

        1.1.1电子商务定义………………………………………………………………   6

       1.1.2电子商务类型………………………………………………………………   6

        1.1.3电子商务的优势与商机………………………………………………………  6

第二章 电子商务网站的前端系统……………………………………………………   6

    2.1一般会员管理…………………………………………………………………… 6

        2.1.1网络电子商店前台基本功能…………………………………………………  6

        2.1.2网络电子商店前台系统程序基本结构………………………………………   6

        2.1.3文件结构……………………………………………………………………  6

        2.1.4数据结构……………………………………………………………………  6

        2.1.5会员系统……………………………………………………………………  9

        2.1.6注册会员系统………………………………………………………………  10

        2.1.7结束语……………………………………………………………………… 11

    2.2商品展示………………………………………………………………………  11

        2.2.1商品展示…………………………………………………………………… 11

        2.2.2关键词查询………………………………………………………………… 11

        2.2.3商品详细资料……………………………………………………………… 12

        2.2.4结束语……………………………………………………………………… 12

    2.3购物车及结帐系统………………………………………………………………12

        2.3.1购物车工作………………………………………………………………… 12

        2.3.2结帐系统…………………………………………………………………… 14

    2.4历史订单查询…………………………………………………………………  14

        2.4.1历史订单查询………………………………………………………………  14

        2.4.2历史订单详细资料查询……………………………………………………   14

        2.4.3结束语……………………………………………………………………… 14

第三章电子商务网站后端管理系统…………………………………………………… 14

    3.1基本数据管理……………………………………………………………………14

        3.1.1商品类别数据维护………………………………………………………… 14

        3.1.2商品基本数据维护………………………………………………………… 14

        3.1.3供应商数据维护…………………………………………………………… 15

        3.1.4结束语…………………………………………………………………………………15

    3.2交易数据管理…………………………………………………………………  15

        3.2.1订单数据维护……………………………………………………………… 15

        3.2.2出货数据控制……………………………………………………………… 15

        3.2.3结束语……………………………………………………………………… 15

第四章电子商务网站安全技术………………………………………………………… 15

    4.1程序本身的完善………………………………………………………………  15

        4.1.1数据库的安全………………………………………………………………  15

        4.1.2模块的封装………………………………………………………………   16

        4.1.3网上跟踪…………………………………………………………………… 16

    4.2 IE的设置…………………………………………………………………………20

        4.2.1COOKIES技术……………………………………………………………… 20

        4.2.2IE的安全设置………………………………………………………………  21

参考文献………………………………………………………………………………… 21

附录A系统使用说明…………………………………………………………………… 21

    

    

 摘 要

    电子商务网站是现在和未来的一种购物方式,他将会给人们带来越来越多的方便。本文将首先从结构上对网站的设计有一个总体上的思想,包括网站的前端的会员管理模块和后端的数据维护模块,这是任何一个网站所必备。但我还是把一些内容放在安全技术的论述上,当安全越来越成为当今网站的一个突出主题时,我们不得不在安全上下大功夫,让我们的网站成为您的一方净土。

一个电子商务网站,从好处上说它可以带给我们更加快捷的生活方式和提供更加方便的人性化服务,但从坏处上说它将我们的隐私更加暴露无遗,我们需要把我们的真实姓名、身份证号甚至连我们的银行帐户提供给商家。我们不得不怀疑网络上是否安全,别人是否会利用我的帐户在购买商品,我们上网时有没有被别人跟踪。在这一切没有解决之前我们的顾客是不愿意在网上购物时,我们应该怎么办?本文将从电子网站的整体设计的同时来考虑怎样来减少我们网站的安全漏洞。

关键词:电子商务网站

   Abstract

The e-commerce Web site is now and kind of shopping way in the future,He will bring more and more convenience to people。At first at structure design this text in the Web site there is a thought generally,Including the data that the member in the front of the Web site managed the module and back end maintain the module,This is indispensability of any Web site,But I put some content on the argumentation of the safe practice,When safe to nowadays become a theme of stressing of the Web site more and more,Let our Web site become your pure land of party。

An e-commerce Web site,Speak it and can bring a swifter life style to us and offer more convenient humanization to serve from advantage,Say it at to have not as completely exposed personal secrets further we from harm。We need to offer our true name and ID card number and our bank account to the trade company。We have to suspect whether it is safe on the network or not,Whether others will utilize my account to buy the goods,We have been followed by others while surfing the Net。The customer without we before solving is unwilling while doing shopping on the net in all these,How should we do?This text will be from coming to consider at the time of the global design of the electronic Web site how to reduce the security loophole of our Web site。

The keyword: E-commerce Web site

 

第一章    引言

1.1何为电子商务

        电子商务的时代已经来临,网际风格风潮所带来的优势与商机,彻底改变了传统的企业经营类型。许多非信息产业的企业也投入了这场战争之中,您可以在网络上看到各式各样的商业网站林立,像搜索引擎、网络购物中心、网络社区、网上证券公司等。这样的趋势在未来将继续蓬勃发展,进入电子化的21世纪!

1.1.1电子商务的定义

          今天您在各种媒体上都可以看到许多电子商务的相关报道,电子商务几乎是信息科技应用的代名词。到底什么是“电子商务”?简单说就是“将传统的交易的行为转移到网络上来进行”,也就是整合了商业运作中的资金流(金钱的流动)、物流(商品实体的转移)以及信息流(信息的传递),以电子传递的形式通过网络来完成交易的模式。

1.1.2电子商务的类型

我们可以将电子商务分为两大类:

1)企业与企业之间的交易(Business to Business)

    主要是针对企业内部以及企业之间的信息整合。举个例子来说,在过去企业内部的作业流程大多依赖人工处理,如今企业信息化已经成竞争力的主要构成;许多公司通过“企业内部网络”(Intranet)架设信息流通的基础,将库存、采购、会计、行销、出货等作业流程加以整合,有效地提高企业生产力。除此之外,通过网络的连接,企业间网络(Extranet)更可以结合产业的上、中下游厂商,实现“全球供应链”(Global Supply Chain)的理想。

2)企业与客户的交易(Business to Customer)

       意指企业通过网络,为客户提供各种交易与服务。客户用计算机连接因特网后可以取得各式各样的网上实时服务,包括商品查询、产品支持、实时财经信息报导、网上订货等等。

1.1.3电子商务的优势与商机

        1)信息流通与共享

            在一个以网络为基础的社会,电子化的信息可以迅速地传递与流通,这样的特征是商业行销的最佳利器。在过去我们必须负担昂贵的广告成本,很有限地将信息传播出去。然而网际网络的出现,使我们在弹指之间便能将信息传递到世界各地。

        2)市场广大无界限

        以购买书籍为例,当我们想要寻找所要的书时,在过去必须要一家一家的书店慢慢找,而且范围也只限于邻近地区;但现在我们只要轻轻松松坐在家里上网,用鼠标点一点就可以找到我们想要的东西。这样的 交易模式意味着商业领域的扩展,网际网络的出现完全打破了地区的,所谓“天涯若比邻”正是最佳写照。

 第二章电子商务网站的前端系统

2.1一般会员管理

2.1.1网络电子商店前台的基本功能

1、会员系统:基本会员注册、会员登录认证。

2、商品陈列系统:商品模糊查询、商品详细数据介绍。

3、添加商品到采购车、采购车内容的删除修改。

4、结帐系统:订单内容的确定及送货付款方式的选择。

5、订单查询系统:根据会员的登录查出会员历史订单及订单的详细信息。

期望通过这五大系统来建立一个功能完整的电子商店前台系统。

2.1.2网络电子商店前台系统程序基本结构

前端应用程序接口,包含各种扩展名为aspx及ascx文件

————————>

<————————

各种商业对象,包含各种扩展名VB编译成DLL的文件

————————>

<————————

SQL SERVER或

ACCESS数据库

上图是实现网络电子商店的程序运行的基本结构,这种运行结构就是所谓的三层式结构,此种结构最主要的是将前台接口、商业对象及数据库分开,将此三者分开,程序运行起来有更大的灵活性,前台接口只负责数据的表现,ASP.NET本身就提供了许多表现数据的WEB CONTROL让你很轻松就可以完成前台数据库表现接口设计。

至于商业对象就是负责将一些商业逻辑运算封装到对象,对象中运算方法则最主要是当作后台数据库与前台接口的桥梁,ASP.NET也提供很简单的方法让您建立、修改及布置商业对象。至于数据库,最主要的功能就是存储数据,就像微软的产品来说最有名的前台数据库就是Access了,最有名的后台数据库就是大名鼎鼎的SQL SERVER,在此网络电子商店系统选择的数据库是SQL SERVER。

2.1.3文件结构

    根据系统分析的结果,将分为三个部分来说明

    1) 有关ASCX文件部分:

(1)_head.ascx:负责窗口标题的pagelet;

(2)_class.ascx:负责表现商品类的pagelet;

(3)_TopItems.ascx:负责最畅销的手机的pagelet;

    2) 有关ASPX文件部分:

(1)CartAdd.aspx:将商品放入采购车;

(2)CheckOut.aspx:结帐处理程序;

(3)Default.aspx:网站默认的主页;

(4)Login.aspx:会员登录程序;

(5)Member.aspx:会员注册程序;

(6)OrderDetails.aspx:历史订单详细资料;

(7)OrderList.aspx:历史订单总结;

(8)MobileDetails.aspx:手机详细数据;

(9)MobileList.aspx:手机陈列;

(10)Cart.aspx:采购出处理程序;

(11)LogoOut.aspx:注销程序;

(12)Index.aspx:会员默认主页;

他们之间的关系是:

Default.aspx——>Login.aspx或menber.aspx——>MobileList.aspx——>MobileDetails.aspx——>CartAdd.aspx——>Cart.aspx——>CheckOut.aspx——>OrderList.aspx——>Loginout.aspx——>index.aspx

(注:由于我对将功能块直接写到网页中,因此没有了写VB文件)

2.1.4数据库结构(estroe.mdb)

    根据系统分析的结果我们将此系统分为九个数据表来说明,如表2-1到2-9所示。

表2-1 会员数据表(Customer)

字 段 名 称

数 据 类 型

主 键

说 明

Customer_NO自动编号*客户编号
Customer_Name文本客户名称
Customer_ID文本客户帐号
Customer_Psd文本密码
Customer_Birthday日期/时间

生日
Customer_Sex文本性别
Customer_Address文本地址
Customer_Email文本电子邮件
Customer_RegDate日期/时间

注册日期
Customer_Tel文本电话
表2-2 商品类别数据表(Class)

字 段 名 称

数 据 类 别

主 键

说 明

Class_No自动编号*类别编号
Class_Name文本类别名称
表2-3商品数据表(Product)

字 段 名 称

数 据 类 型

主 键

说 明

Poduct_No自动编号*商品编号
Product_Name文本商品名称
Class_No数字类别编号
Supplier_No数字供货商编号
Product_Price数字商品价格
Product_Picture文本商品图片
Product_Des备注商品描述
表2-4采购车(ShoppingCart)

字 段 名 称

数 据 类 型

主 键

说 明

Cart_No自动编号*采购车编号
Cart_ID文本采购车ID

Cart_Qty数字货物数量
Product_No数字商品编号
Cart_Date日期/时间

建立日期
表2-5订单主文件(Orders)

字 段 名 称

数 据 类 型

主 键

说 明

Order_No自动编号*订单编号
Customer_ID文本客户帐号
Order_Date日期/时间

订购日期
Payment_No数字付款方式编号
Translate_No数字运送方式编号
Order_address文本送货地址
表2-6订单详细信息文件(Order_List)

字 段 名 称

数 据 类 型

主 键

说 明

Order_No数字*订单编号
Order_ItemNo自动编号*详细信息文件编号
Product_No数字商品编号
Product_Price数字商品单价
Product_Qty数字订购数量
表2-7供货商(Supplier)

字 段 名 称

数 据 类 型

主 键

说 明

Supplier_NO自动编号*供货商编号
Supplier_Name文本供货商名称
Supplier_Address文本供货商地址
Supplier_Manager文本负责人
Supplier_Contact文本联系人
Supplier_Tel文本电话
Supplier_Email文本电子邮件
表2-8付款方式(Payment)

字 段 名 称

数 据 类 型

主 键

说 明

Payment_No自动编号*付款方式编号
Payment_Name文本付款方式名称
表2-9送货方式(Translate)

字 段 名 称

数 据 类 型

主 键

说 明

Translate_No自动编号*运送方式编号
Translate_Name文本运送方式名称
他们之间的关系如下:

product表的字段Product_No、Class_No、Supplier_No分别对应ShoppingCart表与Order_List表的Product_No、Class表的Class_No和Supplier表的Supplier_No;

Orders表的字段Order_No、Customer_ID、Payment_No、Translate_No分别对应Order_List表的Order_No、Customer表的Customer_ID、Payment表的Payment_No和Translate表的Translate_No;

2.1.5会员系统    

一般的会员系统,不外乎是收集客户的数据,发送电子简报,然后从电子简报中夹带公司的广告信息促销办法,最新消息发布,以便让顾客随时知道公司的最新动态,以让公司及个人掌握商机。通常会员注册系统有分为需要客户进来打开启用码的和只是输入基本数据。通常需要起用码的系统,都是对客户数据要求比较准确的,所以要确定电子邮件信箱是正确的,以便将系统生成的启用码送到客户的信箱,然后客户再根据这个启用码连上网站,输入启用码,正式起用这个帐号。不过一般网站的会员系统只是输入基本数据,对客户数据要求准确性的要求不高,相对得成为会员的步骤也比较简单。

要建立一个电子商务网站,首先要先建立会员管理系统,因为电子商务网站对于会员数据的准确性要求比较高,所以决定使用起用码的方式来打开帐号,然后用此会员管理系统来收集客户的信息,分析客户的购买行为,对客户作一对一的行销,发电子邮件,寄促销信。

由于我做的网站没有放到万维网上,所以没有动用启用码,但我必须谈一下这方面的技术,下面是我做的一个起用码,说的简单点就是要求用户必须填写正确的数据,通过邮件的方式来加以确认。

Public Function  AddMemenber ( fullName as string, UserID as String , Password  as string, sex as string, Birthday as string, tel as string, address as string, email as string) as string

Dim conn as 

OleDbConnection=new OleDbConnection(ConfigurationSetting.AppSetting(“DSN”))

‘生成启用码

Dim beginCode as integer

Randomize

 beginCode=CInt(10000000*((9*Rnd)+1))

Dim SQL As String

SQL="Insert into Customer(Customer_Name,Customer_ID,Customer_Pwd,Customer_Sex,"

SQL=SQL+"Customer_Birthday,Customer_Tel,Customer_Address,Customer_Email,Customer_Code) "

SQL=SQL + "values('" & fullName & "','" & userID & "','" & password & "','" & sex & "',"

SQL=SQL + "'" & Birthday & "','" & Tel & "','" & Address & "','" & Email & "','" & BeginCode & "')"

Dim myCommand As OleDbCommand = new OleDbCommand(SQL, myConnection)

conn.Open()

myCommand.ExecuteNonQuery()

Try 

  Dim mail As MailMessage = New MailMessage

  mail.To = Email

  mail.From = "whz_35@eyou.com"

  mail.Subject = "启用码"

mail.Body = cstr(BeginCode)

SmtpMail.Send(mail)

Finally

conn.Close()

End Try

Return UserID.ToString()

End Function

生成启用码也就是利用随机数的方式生成,这一段程序就是当用户输入数据后,跟着我们就利用寄信组件SmtpMail发送启用码到会员的电子邮件地址,要注意的是使用寄信组件SmtpMail必须引入System.Web.Mail名字空间程序才能正常运行。

2.1.6注册会员系统

系统安全,首先是顾客资料的安全,在顾客成为本网站的会员时,我们必须对顾客的资料进行加密,在ASP.NET中提供了加密的功能。名字空间System.Web.Security中包含了类FormsAuthentication,其中有一个方法HashPasswordForStoringInConfigFile。这个方法可以将用户提供的字符变成乱码,然后存储起来。注意此方法是不能继承的。

如下图:是我做的一个用户注册页面,简单明了。

下面的代码就是在做注册页面时将数据加密后存储到数据库的过程

Imports System.Web.Security

Imports System.Data

Imports System.Data.SqlClient  '////////所需要的名称空间

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim PassFormate As String

        '///////////////EncryptPassword调用函数

        PassFormate = EncryptPassword(uid.Text, "md5")'////或者是EncryptPassword(uid.Text,"sha1")

        'TextBox2.Text = EncryptPassword(uid.Text, "md5")

        'TextBox3.Text = EncryptPassword(uid.Text, "sha1")

        '///////////这些大家自己试验吧

        'TextBox4.Text = FormsAuthentication.FormsCookieName

        'TextBox5.Text = FormsAuthentication.FormsCookiePath

        'TextBox6.Text = FormsAuthentication.GetRedirectUrl(uid.Text, True)

        'FormsAuthentication.SetAuthCookie(uid.Text, True)

Dim sql As String = "insert into pwd(uid,pwd) values(@uid,@pwd)"

        Dim comm As SqlCommand = New SqlCommand(sql, conn)

        conn.Open()

        comm.Parameters.Add(New SqlParameter("@uid", SqlDbType.Char, 16))

        comm.Parameters("@uid").Value = uid.Text

        comm.Parameters.Add(New SqlParameter("@pwd", SqlDbType.Char, 16))

        comm.Parameters("@pwd").Value = PassFormate

        comm.ExecuteNonQuery()

    End Sub

   '////////////////定义加密函数,可以随时调用。

    Function EncryptPassword(ByVal password As String, ByVal passwordformate As String)

        If passwordformate = "sha1" Then

          EncryptPassword=FormsAuthentication.HashPasswordForStoringInConfigFile(password,"sha1")

        ElseIf passwordformate = "md5" Then

          EncryptPassword = FormsAuthentication.HashPasswordForStoringInConfigFile(password, "md5")

        Else

            EncryptPassword = ""

        End If

End Function

至于用户的验证也是一样的思路了。

2.1.6结束语

在互联网上会员管理是非常常用的功能,但是希望我们在了解并引用外,更要加以扩充和加密。我们可以用SLL将数据加密,这部分可以用windows2000系统安全功能来增强。

2.2商品展示

    在上一节中已经介绍了系统的内容(包含文件的结构、功能),并说明会员管理的内容。在这节中将说明电子商城的商品展示部分,这属于电子商城用户前端。

2.2.1商品查询

商品分类查询功能应具有:

1)、利用_Class.ascx产生各分类

2)、查询各分类的商品

在这里我们建立_Class.ascx这个Pagelet,做一个Pagelet的最主要用意,就是实现模块化,把经常会用到的程序接口包装成一个Pagelet,那么以后如果程序中要用到则可以直接引用就可以了。_class.ascx最主要的用意就是将商品分类的class数据表的数据显示出来。代码在代码目录中,这里就不详述了。

    2.2.2关键词查询

        关键词查询应具备如下功能:

        1)、利用_Head.ascx产生查询界面

        2)、根据用户输入关键词查询各商品

    _Head.ascx是一个Pagelet对象,Pagelet对象的作用,前面已经说明了,在此抽出有关查询接口的部分,程序代码如下:

    

                    

            其实这是一段简单的HTML Form 的语句,而这个Form的Action指向search.aspx,所以查询和        显示都会在search.aspx中处理。代码在代码目录中,这里就不详述了。

2.2.3商品详细资料

        商品详细资料是利用Mobilelist.aspx传入的参数找出商品的详细资料,在商品陈列系统中,通常商品在陈列的时候为了一次可以显示较多的数据所以第一次查询出来的商品都只是做一个简单的解释,不会显示商品的所有的细节,用户对某个商品有兴趣然后再让用户利用一个超级链接去看商品的详细的资料,而mobileDetails.aspx就是显示商品详细资料的程序。

    2.2.4结束语

        在互联网上商品展示是一种非常常见的功能,但是希望在我们了解并引用外,能加以扩充,创造出更友善的接口,让用户更快容易找到商品,并充分了解商品。

        3)将数据显示出来

如下图:是我做的一个结账系统的页面截图

        具体程序不在祥述,代码在代码目录中。

2.4历史订单查询

    完成了前面的系统,但是考虑到客户完成了商品的采购,有一天也许想看看历史订单,统计一下一共购买了多少商品以便作为下一次采购商品时的参考,我们在网络电子商店的前端系统加入了历史订单查询系统,好让消费者能查询自己的历史订单。

    2.4.1历史订单查询

由前述可知,历史订单除了让客户自行查阅外,更可以用来了解客户的消费习惯及兴趣,他大致流程如下:

1)先从系统中取得 customerID

2)利用CustomerID取得订单数据

具体程序不在祥述,代码在代码目录中。

    2.4.2历史订单详细资料查询

除了可以让用户查询以前消费的订单金额外,也可以让其查询每笔订单的详细资料,所以历史订单资料查询流程大致如下:

1)先从Request.Params(“OrderId”)取得OrderID

2)利用此OrderID取得每张订单的详细数据

3)将数据显示出来

具体程序不在祥述,代码在代码目录中。

    2.4.3结束语

        现在以将整个前台的系统完成,但需要我们不断不完善它。

第三章电子商店后端管理系统

3.1基本数据管理

一个电子商城系统,除了前台的用户操作界面外,更重要的就是后台的商理系统了,所以在接下来我们将着重论述后端数据库的维护,简单来说就是对数据库的数据执行添加、修改、删除、查询操作,通过查询的方法可以知道所输入的数据是否正确,通过添加的方法,可以往数据库中添加数据,通过修改的方法,可以把数据修改成正确的值,通过删除的方法,可以删除不必要的数据,这四种方法是数据库操作的基本的方法,也是开发应用程序在数据维护所必备的。我将分三部分:

1、商品类别数据维护

2、商品基本数据维护

3、供应商数据维护

如下图:这是一个商品后台管理的进入界面

    3.1.1商品类别数据维护

商品类别数据维护就是通过查询具体某类别,在找到以后可以对其删除和进行修改,另外在做一个“添加数据”的按钮可以增加其中的类别。具体的程序在代码目录中,这里不详述。

    

    3.1.4结束语

        在这节中的三个功能模块表达了进、销、存中的重要的三种数据,也是一般MIS系统中常见的程序。

3.2交易数据管理

交易是一家公司的重要的记录,也是公司赚钱的来源,交易数据维护包含订单数据维护和出货数据维护。

3.2.1订单、数据维护

订单数据维护是MIS最主要的一个程序,没有订单公司就无法生存,所以订单程序也是所有MIS人员必须学习的一个程序。

数据结构包含出货表(supplierDetail)、出货暂存表(suppliertime)、供货商基本表(supplier)、出货单号表(outputsupplier)。

其流程如下:

Click订单资料维护——>选取相关信息——>按“查询”——>按“转发”——>结果放在DataGrid上——>订单取消可以把所有的项目删除/按“删除”可以把所选的清除/按“订单确认”来转发

3.2.2出货数据维护

出货数据维护其流程如下:

Click出货数据控制——>选取相关数据然后“查询”——>按一下“详细”即可看到详细的数据

3.2.2结束语

在传统的交易下会有进货和出货,但需要费用,现在我们用虚拟的商城来做为商店,省去了一般的商店需要租场地的费用,及利用了网络无极限的概念,只需通过下订单给供应商,然后有供应商来帮我们出货给客户,以达到零库存的目的。

第四章电子商务网站的安全技术

完成电子商务网站的设计只是完成我们工作的第一步,接下来我们将谈论电子商务网站的安全的技术。

4.1程序本身的完善

    4.1.1数据库的安全

        1)配置Web.config文件,将数据库连接直接写入其中,然后在外面程序加以调用,具体方法为:

之间加

1、Access数据库

           

          

        2、SQL Server 2000数据库

           

Dim coon As sqlConnection = new sqlConnection(ConfigurationSettings.AppSettings("DSN"))

这样即使你的源程序被别人下载,也没关系,别人无法知道你的数据库在哪里。

2)第二种方法就是修改数据库的后缀名(Access数据库测试成功),比如将*.MDB改为*.asp别人如果下载到你的数据库,他也打不开,因为这是不可逆。

4.1.2模块封装

           将一些重要的程序功能模块写成VB或C#文件,然后编译成dll文件,再在以后的文件中调用。现在我举一个例子(firstControl.vb):

Imports System

Imports System.Web.UI

NameSpace EcnCntrol

Public Class FirstControls

Inherits Contorl

Protected Overrides Sub Render(Printf  As HtmlTextWriter)

Printf.Write(“

笔者的第一个控件练习

”)

End Sub

End Class

End NameSpace    

编译程序:

    Set destdir=….\\bin\\ecncntrol.dll

    Set compdir=C:\\WINDOWS\\Microsoft.NET\\Framework\\v1.0.3705\\system.web.dll system.dll

     VBC  /T:LIBRARY  /R:%compdir%  /OUT:%destdir%  firstcontrol.vb

这是一个在Dos环境下执行的程序,变量DESTDIR是编译后的DLL文件存放的地方,而Compdir是.NET函数存放的地方,vbc是VB编译指令(CSC是 C#的编译指令),/T是调用library;/r调用.net函数;/out调用输出存放地;最后是引用要编译的文件名。

接下来是在*.aspx文件中引用.DLL文件,如下:

<%@ Register Tagprefix=”ecn” NameSpace=”EcnCntrol” Assembly=”EcnCntrol” %>

       在引用时要使用TagPrefix和Namespace,关于TagPrefix,在此定义为:“当您要使用控件在另一个网页上的方法,这个命名方式任由用户选择”,而namespace则是在网页上要引用的控件里的namespace的名称。在网页引用控件之后,其使用方法为

4.1.3网上跟追

       再一个方面是做网上跟踪系统。就像各超级市场装电子眼一样,我们必须对每一位顾客的行踪有一定的了解。但跟踪系统也局限于对顾客个人公开场合的一些基本资料的跟踪,保护顾客的绝对隐私权。跟踪资料包括用户名,目前所处的位置,上网时间即可。

以下是我做的一个C#的在线用户的检测:

#define _debug

namespace Soholife

{

      using System;

      using System.Data;

      using System.Data.SqlClient;

      using System.Collections ;

      using System.Threading ;

      using System.Web;

      using System.Diagnostics;

     //定义了一个结构

     public struct User

     {

        public string name;

        public DateTime lasttime;  

        public DateTime curtime;

        public string sessionid;

        public string iswhere;

     }

     //定义在线用户类

     public class OnLineUser

     {

        private static ArrayList _alluser ;        //定义用户

        public ArrayList alluser

        {

            get{return _alluser;}

            set{_alluser=value;}

        }

        public OnLineUser()        //构造函数

        {

            if(_alluser==null)

            {

                _alluser=new ArrayList();    

            }

        }

//功能说明:将当前用户加入在线列表

       //如果该用户的数据当前仍然在在线列表中,则暂时先不让该用户登陆,提示用户存在

      public bool  AddUserToOnLine(User user)

        {

            //需要先判断用户是否已经在用户列表中了

            if(_alluser==null)

            {

                _alluser.Add(user);

                return (true);

            }

            else

            {

for ( int i = 0 ; i < _alluser.Count ; i ++)

                {

                    //循环判断用户是否已经存在

                    Soholife.User tempuser = (Soholife.User)_alluser[i] 

if(tempuser.sessionid.Equals(user.sessionid) && tempuser.name.Equals(user.name))

                    {

                        return(false);    //用户已经存在,则直接退出

                    }

                  }

                   _alluser.Add(user);

                return (true);

            }

          }  

          //功能说明:判断某用户是否在线,本部分暂时不用

          //返回值:TRUE代表在线,FALSE不在

          public  Boolean IsUserOnLine(string name)

          {

            //需要先判断用户是否已经在用户列表中了

            if(_alluser==null)

            {

                return (false);

            }

            else

            {

for ( int i = 0 ; i < _alluser.Count ; i ++)

                {

                    //循环判断用户是否已经存在

                    Soholife.User tempuser = (Soholife.User)_alluser[i] ;

                    if(tempuser.name.Equals(name))

                    {

                        return(true)    ;

                    }

                  }

                return (false);

    }

           }

          //功能说明:更新用户在线时间

          //返回值:最新的在线用户列表

          public Boolean CheckUserOnLine(string name)

          {

             //需要先判断用户是否已经在用户列表中了

            if(_alluser!=null)

            {

for ( int i = 0 ; i < _alluser.Count ; i ++)

                {

                    Soholife.User  tempuser = (Soholife.User)_alluser[i] ;

                    //先判断当前用户是否是自己

                    if(tempuser.name.Equals(name))

                    {

                        //更新用户在线时间

                        tempuser.curtime=DateTime.Now;

                        alluser[i]=tempuser;

                        return(true);

                    }

                  }

             }

             return(false);

          }

       }

      public class CheckOnline                 //下面开始建立守护线程类:

      {

        const int DELAY_TIMES = 5000 ;                //定义执行的时间间隔为5秒

        const int DELAY_SECONDS=30;                //将用户掉线时间设置为30秒

        private Thread thread ;                        //定义内部线程

        private static bool _flag=false;                    //定义唯一标志

        public CheckOnline()

        {

            if (!_flag)

            {

                _flag= true;

                this.thread = new Thread(new ThreadStart(ThreadProc)) ;

                thread.Name = "online user" ;

                thread.Start() ;

               }

        }

       internal void ThreadProc()

        {

            while(true)        

            {

              Soholife.OnLineUser temp=new Soholife.OnLineUser(); //定义一个用户对象

for (int i=0 ;i< temp.alluser.Count;i++)

                {

                    User tmpuser=(User)temp.alluser[i];

             //我是将该用户的最新时间加上80秒,然后和当前时间比较,小与当前时间,

                    //则表示该用户已经掉线,则删除他的记录

if(tmpuser.curtime.AddSeconds(DELAY_SECONDS).CompareTo(DateTime.Now)<0)

                    {

                        temp.alluser.RemoveAt(i);

                    }

                }

                Thread.Sleep(DELAY_TIMES) ;

                

             }

          }

      }

}

4.2IE的设置

    4.2.1COOKIES技术

    1)、在登录时我们使用的Cookie,它将用户登录的用户名和密码做一个记录, 您也可以在硬盘上查找 Cookie 的文本文件,从而打开 Cookie。Internet Explorer 将站点的 Cookie 保存在文件名格式为 @.txt 的文件中,其中  是您的帐户名。例如,如果您的名称为 mikepope,您访问的站点为 www.contoso.com,那么该站点的 Cookie 将保存在名为 mikepope@www.contoso.txt 的文件中。(该文件名可能包含一个顺序的编号,如 mikepope@www.contoso[1].txt。)

因此在别人使用你的电脑时,他很容易得到你的用户名,要消除Cookie对用户的威胁我们可以在用户登录我们的页面时将用户名和密码设置为立即过期,删除 Cookie(即把该 Cookie 从用户的硬盘上物理删除)是修改 Cookie 的一种形式。由于 Cookie 位于用户的计算机中,所以您无法直接将其删除。但是,您可以让浏览器为您删除 Cookie。修改 Cookie 的方法前面已经介绍过(即用相同的名称创建一个新的 Cookie),不同的是将其有效期设置为过去的某个日期。当浏览器检查 Cookie 的有效期时,就会删除这个已过期的 Cookie。 所以,删除 Cookie 的方法与创建该 Cookie 的方法是相同的,只不过要把其有效期设置为过去的某个日期。以下示例比删除单个 Cookie 要稍微有趣一些,它使用的方法可以删除当前域的所有 Cookie: 

  Dim i As Integer 

  Dim cookieName As String 

  Dim limit As Integer = Request.Cookies.Count - 1 

  For i = 0 To limit 

  aCookie = Request.Cookies(i) 

  aCookie.Expires = DateTime.Now.AddDays(-1) 

  Response.Cookies.Add(aCookie) 

  Next

也可以删除单个Cookie值,如:

Response.Cookies("TestCookie").Value = "ok" 

   Response.Cookies("TestCookie").Expires = DateTime.Now.AddMinutes(-1)

只要将DateTime.Now.AddMinutes(-1)中数设置为负数即可。

2)、第五个非常重要的安全方法是对IE本身的设置,其实美国已经明令将IE中的Cookie功能关掉,因为这个东西对用户的资料太暴露了,但中文版的IE还没有这方面方展的趋势,这大概是因为中国光盘盗版太严重的原因吧。因此我们只好自己动手将Cookie关掉了,一种是对IE软件进行设置,方法:

如果你的浏览器是IE6.X版过程是:选取菜单中的“工具/Internet选项”,待出现“Internet选项”窗口时,选取“隐私”选项卡,接着按下“高级”按钮,待出现“高级隐私策略设置”窗口时,选中“覆盖自动cookie处理”,接着如果要关闭Cookie,则是选取“第一方Cookie”底下的“拒绝”及“第三方Cookie”底下的“拒绝”。

如果你的浏览器是IE5.X版,过程是:选取菜单中的“工具/Internet选项”,待出现“Internet

选项”窗口时,选取“安全性”选项卡,接着按下“自定义级别”按钮,待出现“安全性设置”窗口是,卷动卷轴到Cookies的位置,接着如果要关闭Cookie,则是选取“禁用”按钮。

另一种为编写程序,方法:

在web.config文件中加入以下程序:

这样设置只是对其中的一个文件目录有效,如果需要关闭Cookie还是建议用第一种方法。

4.2,2IE的安全设置

    第六个方面也是IE方面的。相信大家有些经常上网的人会有一些感受,比如你在一家会员网站上

二次输入你的用户名的第一个字符时,后面的字符也随之跳出,然后输入用户名后密码也跟了出来。引起这个原因的罪魁祸首是form表单,因为我们做用户登录程序时采用的Form-base验证,而IE默认设置是保存用户名和密码的。如果想取消可以采用以下方法:浏览器是IE6.X版过程是:选取菜单中的“工具/Internet选项”,待出现“Internet选项”窗口时,选取“内容”选项“个人信息/自动完成”,待出现“自动完成设置”窗口后,勾掉“表单上的用户名和密码”的选项框就可以了。

 

参考文献:

1、《Asp.NET行家设计实务》康际科技 著 中国铁道出版社 2002年1月第1版

2、《Asp.NET项目开发实践》陈娴等 著 中国铁道出版社 2003年9月第1版

3、《21天学通C#》Bradley L.Jones著 信达工作室 译 人民邮电出版社  2002年9月第1版

4、《ASP.NET网页制作教程—从基本语法学起》王国荣 著 华中科技大学出版社 2002年8月第1版

5、《电子商务网站网上交易系统》邵晓薇 王维民 著 人民邮电出版社 2000年6月第1版

6、《网页动感地带-网页特效400例》水新宝等著 山东电子音像出版社 2003年8月第1版

附录A系统使用说明:

我将代码放在代码库中,用windows xp,windows 2000,windows server 2003的的操作系统,需要装IIS5.0或IIS6.0加.NET Frame Work SDK即可运行,首页为index.aspx;管理员用户名:whz_35;密码:876321。(需要将manage目录设置为“默认应用程序”)下载本文

显示全文
专题