第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 —
bgp.to在对日本东京的独立服务器进行6.5折终身优惠促销,低至$120/月;对新加坡独立服务器进行7.5折终身优惠促销,低至$93/月。所有服务器都是直连国内,速度上面相比欧洲、美国有明显的优势,特别适合建站、远程办公等多种用途。官方网站:https://www.bgp.to/dedicated.html主打日本(东京、大阪)、新加坡、香港(CN)、洛杉矶(US)的服务器业务!日本服务器CPU...
Cloudxtiny是一家来自英国的主机商,提供VPS和独立服务器租用,在英国肯特自营数据中心,自己的硬件和网络(AS207059)。商家VPS主机基于KVM架构,开设在英国肯特机房,为了庆祝2021年欧洲杯决赛英格兰对意大利,商家为全场VPS主机提供50%的折扣直到7月31日,优惠后最低套餐每月1.5英镑起。我们对这场比赛有点偏见,但希望这是一场史诗般的决赛!下面列出几款主机套餐配置信息。CPU...
云基yunbase怎么样?云基成立于2020年,目前主要提供高防海内外独立服务器,欢迎各类追求稳定和高防优质线路的用户。业务可选:洛杉矶CN2-GIA+高防(默认500G高防)、洛杉矶CN2-GIA(默认带50Gbps防御)、香港CN2-GIA高防(双向CN2GIA专线,突发带宽支持,15G-20G DDoS防御,无视CC)。目前,美国洛杉矶CN2-GIA高防独立服务器,8核16G,最高500G ...