电子商务中的资源访问控制研究

1 引言             电子商务是在Internet开放的web网络环境下,基于浏览器/服务器(B/S)的应用方式,实现客户和企业信息沟通、 网上购物、电子支付的一种新型运作方式。电子商务中基于B/S模式的web应用系统中,用户对应用系统的操作是通过客户端的浏览器实 现的。每个电子商务系统都有一定的访问控制规则,用户只能访问自己权限范围内所能获取的资源。                 传统的客户机/服务器(C/S)网络模式下,通常用户对资源的访问权限是安全数据库服务器通过验证用户所输入的用户名和密码 实现的。在基于web的电子商务系统中该方法仍然有效,但由于采用了web页面,其安全访问的要求和处理方式较之前者有很大变化,主 要体现在以下三个方面:                     ⑴、在电子商务系统中,同一页面上的某些资源对不同的访问用户需要加以控制。例如用户在访问某制造企业销售部门的页面时,对 于非销售部门的人员仅能看到有关企业产品的广告,包括各种设备类型、销售价格等等;而对于本销售部门的人员则不仅可以看到上述信息, 还可以看到产品成本价格等内部信息。                      ⑵、电子商务网站页面上的超链接有可能泄漏信息。电子商务网站的用户在访问web页面时,鼠标指向一个链接锚点(ANCHOR) 时,浏览器的状态栏将显示超链接的位置信息。虽然非授权用户无法访问受控页面,但浏览器状态栏中站点信息的泄漏将会给不法用户以可乘之机。                        ⑶、浏览器书签功能的不安全性。当授权用户通过安全验证后,可将当前web页面放入收藏夹,作为书签(BOOKMART)来使用,以后其它用户或该用户失去访问权限后,仍可通过此书签重新访问该页面,因而造成系统的不安全。            本文针对上述三种情况分别提出了相关web页面资源访问控制的解决方法,并给出了具体的实现步骤和实例。   2 控制web页面资源访问方法             以下我们针对前面提出的三种情况分别给出其解决方法。                2.1 对同一页面上的资源访问进行控制             在电子商务网站上实现web页面上资源的访问控制(即实现针对不同的用户访问权限而变化的web页面)的方法很多,如利用微软的VISUAL INTERDEV 6.0开发工具中的设计时控件DESIGN-TIME CONTROL,结合表单管理对象FORMMANAGER来实现,具体方法是:通过在WEB页面上放置的设计时控件的文本框、命令按钮、列表框等内容,再利用 FORMMANAGER针对不同用户权限对上述控件设置不同的表单表现方式(FORMMODE):ISVISIBLE(控件可见)、DISABLED(控件失效)、SHOW(使控件可见)、HIDE(隐藏控件)、DISPLAY显示控件)等等,然后定义表单的各个对象行为(ACTION),就可控制同一个WEB页面上的针对不同用户的资源访问。                 这里我们给出另外一种更为简单通用的方法:利用ASP和VBSCRIPT(或JAVASCRIPT)脚本功能编程实现控制WEB页面的不同显示。               例如:访问电子商务销售网站中某些产品价格的一个ASP页面文件PRICE.ASP,在其页面上,通过PRICE.ASP?KEY=1第一次显示PRICE.ASP页面内容时,首先在屏幕上显示页面内容0(可以是公司、产品的广告)、有关销售价格页面内容(可以是其它显示资源,包括文本框、图片等等),并出现一个可以根据用户权限访问的“成本价格”按钮。 程序部分源代码如下所示:   <SCRIPT LANGUAGE=javascript>   Sub button1_onclick   If 权限允许 then   Window.navigate “PRICE.ASP﹖KEY=2”   Else  Msgbox “你无权查看成本价格”32“提示信息”   End if   End Sub   Sub button2_onclick   Window.navigate “PRICE.ASP﹖KEY=1”   End Sub   </SCRIPT>   页面内容   <% aa=request.querystring“key”    if aa=1 then %>   有关销售价格页面内容   <INPUT type=“button” value=“成本价格” id=button1 name=button1>   <% elseif aa=2 then %>   <INPUT type=“button” value=“销售价格” id=button2 name=button2>   <% end if %>       当用户按下“成本价格”按钮时,根据是否具有访问权限来决定是否显示同一页面的不同部分--有关成本价格页面的内容。  基于 这种ASP编程原理,对于复杂资源访问控制的情况,也可依此类推,从而实现电子商务网站应用子系统访问的安全控制。       2.2 控制超链接锚点链接信息的泄漏            在浏览器状态栏中显示超链接锚点链接目标信息有时是需要的,可以告知即将链接的目标位置,使用户决定是否进行超链接;但有时 却是不必要的,因为它暴露了锚点链接位置信息,给不法人员进行非法操作提供了线索。这里我们给出定义按钮、服务器组件和将链接内容直 接放在代码中等三种方法,以实现超链接目的而不暴露超链接锚点的链接目标。                2.2.1 通过设置按钮,在按钮的Click事件中控制超链接目标  具体实现方法是:建立一个按钮,在Click事件中,对 具有访问权限的,用Windows.navigate指定链接目标,否则给出″无权访问″的提示。 程序实现的关键代码如下:   <SCRIPT LANGUAGE=vbscript>   Sub ButBOM_onclick   If 具有访问权限 then   Window.navigate “httpwww.myweb.com”   Else  Msgbox “你无权访问该页面”32 “提示信息”   End if End Sub   <INPUT type=“button” value=“物料清单” name=“ButBOM”>         除了用按钮外,网页中的其它对象(如文本标签、文本框等)也可用该方法实现超链接,这与Web页面上的超链接功能几可乱真, 但该方法杜绝了锚点信息的泄漏。                 2.2.2 通过编制服务器端组件实现超链接  该方法的思路是:使用面向对象的编程工具(如Visual Basic等),利 用Internet transfer控件编制服务器端组件,以达到控制超链接锚点信息的目的。在电子商务网站Web服务器上对编程所 生成的DLL组件进行注册,即可在ASP脚本中使用该组件。 例如,组件HttpCom.DLL实现超链接控制的部分代码如下: <% set HttpObj=Server.Createobjct“HttpCom.HTTP”   HttpObj.URL=“ httpwww.myweb.com”  HttpObj.port=80  HttpObj.timeout=80  Strresu lt=HttpObj.GetURL  Response.write strresult %>       该方法不管链接任何URL地址,在浏览器的地址栏始终显示原来网页的URL地址,完全隐藏了链接的目标地址,具有很好的安全 性。但该方法需要编制服务器组件,实现有一定难度。                     2.2.3将要显示的链接内容直接放在代码中  该方法的要点是在ASP页面中通过ASP语句自动生成另外一个页面内容,将它 赋给一个字符串变量StrHTML,将该字符串变量的值定义为Session参数:Session“StrHTML” =StrH TML;然后在页面上放置一个设计时按钮控件,在其服务器端脚本语句的Click事件中用Response.Write Sessio n“StrHTML” 显示其页面内容。这样也可达到和2.2.2中介绍的方法完全相同的效果。               该方法通过设计时按钮控件的Click服务器端脚本事件,不直接超链接至一个页面文件,而直接显示一个动态生成的页面(当页 面内容变化不大时,动态生成页 面对于Web系统的开发非常方便)。它具有技术简单、实现过程灵活方便等优点,可以完全隐藏超链接目标 。其部分实现代码如下:   <% dim aa  aa=“<html>”+“<HEAD>”   aa=aa+“<META Name=‘Generator’ Content=‘Microsoft Visual Studio 6. 0’>”   aa=aa+“<title>新网页例子<title>”   aa=aa+“</HEAD>”+“<BODY>”   aa=aa+“被显示页面”+“<BR>”   aa=aa+“</BODY>”+“<html>”  session“aa” =aa %>   <SCRIPT LANGUAGE=vbscript RUNAT=server>   Sub ButPrice_onclick  Response.write session“aa”    End if   End Sub   </SCRIPT>             2.3 控制浏览器书签功能对页面的访问              为保证电子商务网站的安全性,访问用户身份确认是不可缺少的,它是权 限控制的基础。身份验证一般通过用户登录名和密码来实现 。用户输入用户身份代号和密码后,系统自动检测安全数据库中相应内容,如果吻合,则验证通过,获得相应访问权限,否则拒绝访问。为防 止用户通过浏览器收藏夹功能形成书签,必须对经过身份验证后的页面进行处理,使得用户在调用书签时,因缺乏验证信息而拒绝显示该页面 。        具体实现方法为:           将用户身份代号采用加密算法处理过的结果通过ASP的Session对象(可以在不同页面间实现变量传递)作为页面之间的用 户身份传递标识,将用户登录的信息(登录名和密码)和登录时间组成一个字符序列,采用某种算法(如MD5算法),得到用户一次登录的 唯一标识UserLogID,将其存放到数据库中。            另一方面,将此标识以Cookie的方式存放起来,Cookie的名称可与用户标识挂钩,不设定Cookie的失效时间,此 时Cookie只暂时存于站点服务器的存储器当中,不会写入用户端硬盘,当用户关闭浏览器时自动失效。在访问每个页面前,通过解析后 的用户标识获取数据库中对应的资源访问权限和UserLogID,将该UserLogID与Cookie中的值进行比较,如果相同就 可以进行访问,否则拒绝访问。通过书签访问中间页的用户因为没有Cookie而被拒绝访问。存放在数据库中的用户登录标识可以作为登 录日志来管理。           该方法不仅可以控制浏览器对页面的书签访问,而且可以很好地控制不同用户权限的页面访问,较好地防止网络黑客对电子商务网站 的攻击,使网站具有较高的安全性。         3 小结      本文结合电子商务的特点,讨论了三种Web页面的资源访问控制问题,具有很好的实用性。以上方法已经在多个电子 商务网站中得到了较好的应用。对于安全性能要求特别高的电子商务系统,除了灵活运用本文所介绍的方法外,还可以借助传统的安全访问控 制方法达到安全目的.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值