第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 —
天上云怎么样?天上云隶属于成都天上云网络科技有限公司,是一家提供云服务器及物理服务器的国人商家,目前商家针对香港物理机在做优惠促销,香港沙田机房采用三网直连,其中电信走CN2,带宽为50Mbps,不限制流量,商家提供IPMI,可以自行管理,随意安装系统,目前E3-1225/16G的套餐低至572元每月,有做大规模业务的朋友可以看看。点击进入:天上云官方网站天上云香港物理机服务器套餐:香港沙田数据中...
感恩一年有你!免费领取2核4G套餐!2核4G轻量应用服务器2核 CPU 4GB内存 60G SSD云硬盘 6Mbps带宽领取地址:https://cloud.tencent.com/act/pro/lighthousethankyou活动规则活动时间2021年9月23日 ~ 2021年10月23日活动对象腾讯云官网已注册且完成实名认证的国内站用户(协作者与子用户账号除外),且符合以下活动条件:账号...
今天中午的时候有网友联系到在选择网站域名建站和主机的时候问到域名和IP地址有没有关联,或者需要注意的问题。毕竟我们在需要建站的时候,我们需要选择网站域名和主机,而主机有虚拟主机,包括共享和独立IP,同时还有云服务器、独立服务器、站群服务器等形式。通过这篇文章,简单的梳理关于网站域名和IP之间的关系。第一、什么是域名所谓网站域名,就是我们看到的类似"www.laozuo.org",我们可以通过直接记...