第27卷 第5期 信 息 技 术 VOL.27 NO.5
2003年5月 INFORMATION TECHNOLOGY May.2003
交互式动态网站中的用户安全认证
陈 丹
(黑龙江中医药大学网控中心,哈尔滨150000)
摘要:主要介绍了在交互式动态网站中Http协议的特点和缺陷,阐述了PHP中Session技术的工
作方式,在PHP中设计实现了身份认证,并利用Se s s ion克服了HTTP协议的缺陷,又防止了信
息的泄露,这种机制思想简单,易于实现,而且方便了编程者的使用,是一个比较好的解决方
案。
关键词: HTTP协议; PHP;身份认证; Session
中图分类号:TP393.08 文献标识码:B 文章编号:1009-2552(2003)05-0076- 02
User security authentication in interactive shifting website
CHEN Dan
(Heilongjiang University ofTraditional Chinese Medicine,Network Control Center,Harbin 150000,China)
Abstract :This paper mainly introduces the characteristic and defect ofhttp protocol in interactive shiftingwebsite,and illustrates the way of working of session technology in PHP. It designs and implements identityauthentication in PHP and utilizes session technology to overcome the defect of http. It prevents the revelationof information.This mechanism is simpler and easier.And it makes programing convenient. It is a better solu2t io n.
Key words : http protocol ; PHP; authentication;session
1 通信协议与身份认证 间没有任何关系。也就是说,后续的连接无法得到
1. 1 HTTP协议的特点 有关上次连接的任何信息。
用最新的P HP技术能够动态地产生网页,实现 1.2 身份认证在HTT P协议中的困难
用户同服务器间进行即时交流。用P HP编写的脚 正是HTT P协议采用一次连接和无记忆这两个本所生成的网页,就是通过HTTP协议来进行传输 特点,也就是HTTP协议的缺陷所在,使得基于的。HTTP协议采用一次连接和无记忆的方式来进 WWW方式的身份认证遇到了一些困难。
行通讯。 HTTP协议采用一次连接的通讯方式,而且HT2
一次连接指的是用户向服务器发送了一个请 TP协议是无状态记忆的方式,因此Web服务器无法求。例如要访问一个页面,那么用户的浏览器和 知道此次连接和上次连接的关系,当一次连接断开
要
采用PHP 4中Session技术来实现将用户和服务器 }
所建立的连接状态都记录下。 ? >
2 在P HP中身份认证的设计与实现 有了包含身份认证的文件,只需要在需要进行网站的登陆界面让用户输入用户名和密码,点 身份认证的页面中调用require( “us e - lo g in. inc” ) ,击“确定”按扭,于是浏览器就将两个数据发送给 将身份认证函数包含进程序内。然后程序首先调用WebServer 。 身份认证函数。如果身份认证得到了通过,就可以P HP中可以设计登录函数和完成认证功能的 控制显示相应的页面,如果身份认证没有得到了通P HP脚本。 过,那么则显示相应的出错信息。
首先将负责登录的函数us er- login()写入到文 3 利用Se ss ion技术实现安全认证件us er- login. inc中。 在PHP 4. 04中加入了对Sess ion功能的支持,
如果成功,值为“认证通过” ,否则为相应的出错信 量。Ses s ion简单、安全。 Ses sion还可以用跟踪访问息。认证通过时,可通过调用Header函数将显示页 者的习惯,可以跟踪访问者从一个主页到另外的一面重新定向到需要显示的页面。在调用函数中含有 个主页,这样对站点的更新和定位有好的,同时还可“Location:URL” ,浏览器就会自动访问URL所指向 以记录一个人是否授权了,如果授权后下次进入相的页面。 同的页面就不用再输入密码了。
身份认证的PHP脚本内容: 3. 1 Session的工作方式
<?php 所有用PHP的Sess ion的页面必须用Sessiood功re quire(“us e- lo g in. inc” ) ; 能函数来告诉PHP引擎来将有关的S e s s ion调到内flag=@user- login( inname, inpass, RE2 存中 。为了响应http请求,函数Session-start ()可以MOTE-ADDR) ; 在coo kie域里或请求的参数中取得Ses s ion- id 。如IF ( flag= “认证通过” ) ; 果不能找到Sess ion- id就新建一个Ses s ion。{ S es s ion的工作原理是将文件信息保存在服务器header( ‘lo cation: 的文件系统之中,而且数据的保存和获取是由PHPhttp:ΠΠ. . . . . . . . . . . . . . .; 自动完成的,而直接使用Cookie,就要自己动手进行
} 数据的保存和获取。else 利用Session可以使一个用户在多个主页之间{ 切换的时候保存其信息,这样以前根本无法做到的e cho flag: 事情就变得简单了 。同Ap p lic atio n相比,Ses s ion对} 象更接近于普遍应用程序中所使用全局变量。Ses2? > s io n利用Cookie的身份认证功能,将用户在浏览网同登录函数一样,将身份认证函数写入到us er- 站时需要保存的信息保存在服务器上,这样Sess ions ecurity. inc文件中。 既克服了HTTP协议的缺陷而实现全局变量,是它us er- s ecurity. inc的内容: 使编程者从繁琐的Cookie设置和解析中脱离出来。<?php 3.2 在PHP中使用Sessionfunction user - authentication ( login - cookie脚本中s Ip, us er) 定义全局变量的方法,使得这个全局变量在同一个{ΠΠ函数体 S es s ion中对于所有的PHP脚本都有效。HTTP是一
种无状态协议, In te rne t是无状态 (下转第80页)
—77 —
图2 写缓冲区并编程的程序流程图 利用S es s ion的设置和PHP操作S es s ion的函数,程序清单: 首先将Session Cookie中的Session Id传递给PHP脚
;M58LW064D写缓冲区并编程的程序 本,然后Session-start ()函数根据Session Id的内容,
ORG 0200H 打开并保存Session数据,从中解析出所保存的全局Write:MOV A,#2 CH ;外部存储器总线在P4 变量,这样PHP就可以像使用普通变量一样使用全-P7中,非复用方式。 局变量了。
—80 —
SugarHosts糖果主机商我们较早的站长们肯定是熟悉的,早年是提供虚拟主机起家的,如今一直还在提供虚拟主机,后来也有增加云服务器、独立服务器等。数据中心涵盖美国、德国、香港等。我们要知道大部分的海外主机商都只提供Linux系统云服务器。今天,糖果主机有新增SugarHosts夏季六折的优惠,以及新品Windows云服务器/云VPS上线。SugarHosts Windows系统云服务器有区分限制...
美国高防服务器提速啦专业提供美国高防服务器,美国高防服务器租用,美国抗攻击服务器,高防御美国服务器租用等。我们的海外高防服务器带给您坚不可摧的DDoS防护,保障您的业务不受攻击影响。HostEase美国高防服务器位于加州和洛杉矶数据中心,均为国内访问速度最快最稳定的美国抗攻击机房,带给您快速的访问体验。我们的高防服务器配有最高层级的DDoS防护系统,每款抗攻击服务器均拥有免费DDoS防护额度,让您...
最近AS9929线路比较火,联通A网,对标电信CN2,HostYun也推出了走联通AS9929线路的VPS主机,基于KVM架构,开设在洛杉矶机房,采用SSD硬盘,分为入门和高带宽型,最高提供500Mbps带宽,可使用9折优惠码,最低每月仅18元起。这是一家成立于2008年的VPS主机品牌,原主机分享组织(hostshare.cn),商家以提供低端廉价VPS产品而广为人知,是小成本投入学习练手首选。...