第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 —
melbicom从2015年就开始运作了,在国内也是有一定的粉丝群,站长最早是从2017年开始介绍melbicom。上一次测评melbicom是在2018年,由于期间有不少人持续关注这个品牌,而且站长貌似也听说过路由什么的有变动的迹象。为此,今天重新对莫斯科数据中心的VPS进行一次简单测评,数据仅供参考。官方网站: https://melbicom.net比特币、信用卡、PayPal、支付宝、银联...
轻云互联成立于2018年的国人商家,广州轻云互联网络科技有限公司旗下品牌,主要从事VPS、虚拟主机等云计算产品业务,适合建站、新手上车的值得选择,香港三网直连(电信CN2GIA联通移动CN2直连);美国圣何塞(回程三网CN2GIA)线路,所有产品均采用KVM虚拟技术架构,高效售后保障,稳定多年,高性能可用,网络优质,为您的业务保驾护航。活动规则:用户购买任意全区域云服务器月付以上享受免费更换IP服...
ZJI是成立于2011年原Wordpress圈知名主机商—维翔主机,2018年9月更名为ZJI,主要提供香港、日本、美国独立服务器(自营/数据中心直营)租用及VDS、虚拟主机空间、域名注册业务。本月商家针对香港阿里云线路独立服务器提供月付立减270-400元优惠码,优惠后香港独立服务器(阿里云专线)E3或者E5 CPU,SSD硬盘,最低每月仅480元起。阿里一型CPU:Intel E5-2630L...