首页 > 语言 > 关键词  > php教程最新资讯  > 正文

PHP脚本的8个技巧(5)

2008-09-03 11:10 · 稿源:互联网

采用PHP的用户认证

如果你希望在每一个脚本的基础上实现口令保护功能,那么你可以联合使用header()函数和$PHP_AUTH_USER、$PHP_AUTH_PW全局变量来创造一个基本的认证方案。通常的、基于服务器的认证请求/响应回合很象下面这个样子:

1.用户向一台Web服务器请求一个文件。如果文件在一个受到保护的区域以内,服务器就在响应的文件头内加上401(非法用户)字符串作为回应。

2.浏览器看见该响应之后就弹出用户名/口令对话框。

3.用户在对话框中输入用户名和口令,然后单击“确认”按钮把这些信息送回到服务器。

4.如果用户名和口令有效,被保护的文件将对用户显示,并且,只要现在经过证实的用户一直在保护区域以内。以上的认证过程都有效。 

一个简单的PHP脚本可以模仿HTTP认证请求/响应系统,方法就是发送适当的HTTP头来使得用户名/口令对话框自动出现在客户机的屏幕上。PHP把用户输入对话框的信息存储在$PHP_AUTH_USER和$PHP_AUTH_PW变量中。使用这些变量,你就可以把不符合用户名/口令检验的列表存放到某个文本文件、数据库或者你任何自己指定的地方

注意:$PHP_AUTH_USER、$PHP_AUTH_PW和$PHP_AUTH_TYPE这三个全局变量只有在PHP被当作一个模块安装时才是有效的。如果你正在使用PHP的CGI版本,那么你只能受限于采用基于.htaccess的认证或基于数据库的认证方式,这样你就必需设计HTML表单让用户输入用户名和口令,再让PHP进行有效性的检查。

下面的这个例子显示对2个设定值的检查,但在理论上和以上的用户名和口令检查并无本质的不同。

<?
/*Checkforvaluesin$PHP_AUTH_USERand$PHP_AUTH_PW*/

if((!isset($PHP_AUTH_USER))||(!isset($PHP_AUTH_PW))){

/*Novalues:sendheaderscausingdialogboxtoappear*/
header('WWW-Authenticate:Basicrealm="MyPrivateStuff"');
header('HTTP/1.0401Unauthorized');
echo'AuthorizationRequired.';
exit;

}elseif((isset($PHP_AUTH_USER))&&(isset($PHP_AUTH_PW))){

/*Valuescontainsomevalues,sochecktoseeifthey'recorrect*/

if(($PHP_AUTH_USER!="validname")||($PHP_AUTH_PW!="goodpassword")){
/*Ifeithertheusernameenteredisincorrect,orthepasswordenteredisincorrect,sendtheheaderscausingdialogboxtoappear*/
header('WWW-Authenticate:Basicrealm="MyPrivateStuff"');
header('HTTP/1.0401Unauthorized');
echo'AuthorizationRequired.';
exit;
}elseif(($PHP_AUTH_USER=="validname")||($PHP_AUTH_PW=="goodpassword")){
/*ifbothvaluesarecorrect,printsuccessmessage*/
echo"<P>You'reauthorized!</p>";
}
}
?>

记住,当你正在使用基于文件的保护措施时,这种方式不是绝对能保护目录的安全毯。这对你们中的大多数人而言是显而易见的,但是,如果你的大脑在弹出对话框之间和保护给定目录之间建立一个连接,那么你必须费点劲来认识这一进程。

举报

  • 相关推荐
  • 梦回iPhone 7时代!iPhone 17 Air电池曝光:2800mAh

    快科技7月19日消息,iPhone 17 Air电池容量仅2800mAh,比2016年iPhone 7 Plus的2900mAh还小,主要因机身厚度仅5.5mm成为苹果最薄机型。为弥补续航,苹果配备自研C1基带芯片降低功耗,并计划推出MagSafe外接电池配件。配置方面采用120Hz直屏、A19处理器、12GB内存、4800万单摄,预装iOS 26。值得注意的是,超薄设计使其仅支持eSIM技术,取消了物理SIM卡槽。

  • 网友住酒店光脚洗澡感染HPV 医生回应:需注意防护

    ​近日,“酒店光脚洗澡可能感染HPV”这一话题在网络上迅速发酵,引发了公众对公共场所卫生安全问题的广泛关注和热烈讨论。据媒体报道以及医学专家分析,在酒店等公共浴室光脚洗澡,确实存在感染跖疣病毒的风险,而该病毒正是一种低危型HPV病毒。 跖疣,这一由人乳头瘤病毒(HPV)引发的足部良性增生物,其感染多发生在温暖潮湿的环境中。医学专家指出,当足部皮

  • 折叠屏iPhone首发!苹果马上启动iOS 27开发工作

    苹果很快就会启动iOS 27的开发工作,该公司将优先为折叠屏iPhone打造专属软件功能。 按照计划,iOS 27会在明年上半年的WWDC开发者大会上正式亮相,明年9月份推出正式版系统,由折叠屏iPhone首发搭载。 尽管Mark Gurman并未爆料iOS 27会有哪些折叠屏定制功能,但考虑到折叠屏的屏幕形态和定位,iOS 27首先要做的是分屏功能,业界期待苹果利用折叠屏的大屏优势实现更高效的多任务

  • 11999元iPhone 16 Pro Max只要3800元 女子差点买了个模型机

    原价11999元的iPhone 16 Pro Max 512GB只要3800元,面对如此诱人的低价,你会心动吗? 据平安拉萨消息,事发7月12日中午,拉萨特警支队一名休假民警在公德林天街附近,成功拦截一起用手机模型冒充真机的诈骗案件。 当日,该民警发现一名男子行为异常,频繁拦截路人兜售手机。观察中发现,男子拦住两位女子后,从外套口袋掏出一部苹果iPhone 16 Pro Max真机,熟练操作展示功能。

  • 苹果搞定量产问题!iPhone 17 Pro将首发屏幕抗刮抗反射涂层

    据MacRumors最新报道,苹果公司已解决屏幕抗刮抗反射涂层的生产问题,有望率先应用在iPhone 17 Pro和iPhonePro Max上。 据悉,苹果去年就曾有这个计划,但是后来量产工艺遇到问题,一度被传取消该计划。 当时消息称,为iPhone显示屏添加防反射涂层的过程太慢了,达不到苹果巨大的量产需求。 如今,苹果已经联合供应商改进了工艺,解决了量产问题,iPhone 17 Pro系列可以实现规�

  • OPPO K13 Turbo发布:国补后售价1529.15元起

    核心配置方面,该机配备6.8英寸LTPS直屏,搭载联发科天玑8450处理器,形成7000mAh巨型电池与80W闪充的续航组合。影像系统采用前置1600万像素镜头与后置5000万+200万双摄组合,满足多场景拍摄需求。 防护性能实现行业首创:OPPO K13Turbo成为首款通过IPX9高压高温水柱、IPX8长时间浸泡、IPX6多方向喷水三项顶级防水认证的风冷手机,重新划定手机防护标准。工业设计上,新一代高强度�

  • iPhone 17 Pro/Pro Max大曝光:比16 Pro多了一款配色

    随着iPhone 17系列发布时间的临近,有关这款新品的细节陆续被曝光。 最新爆料显示,iPhone 17 Pro、iPhone 17 Pro Max共有5款配色,比iPhone 16 Pro系列多了一款。 具体来说,iPhone 17 Pro系列提供黑色、灰色、银色、深蓝色和橙色五种配色,而iPhone 16 Pro系列提供沙漠色、原色、白色和黑色,从爆料来看,iPhone 17 Pro系列配色中最具辨识度的是深蓝色。

  • 瓴羊Dataphin 智能升级:编码难题一扫光,开发运维更高效!

    Dataphin V5.1.2智能版本推出三大核心功能:1)智能编码助手:通过自然语言交互自动生成SQL代码,支持代码补全和结构化输出,提升开发效率;2)智能运维助手:提供任务状态可视化监控、异常诊断和一键重跑功能,实现全链路运维管理;3)智能分析助手:基于分析专辑构建自然语言查询系统,支持多轮追问和SQL自由编辑,让非技术人员也能快速获取数据洞察。新版本通过AI技术重构数据开发体验,实现"会写、能懂、秒查"的智能化目标,满足从开发到分析的全场景需求。

  • 曝小米16 9月登场:首发骁龙8 Elite 2 对标iPhone 17

    博主数码闲聊站预告,从9月份开始,苹果和国产品牌将陆续发布迭代旗舰。 这些机型包括iPhone 17系列、小米16系列、荣耀Magic8系列、vivo X300系列、OPPO Find X9系列、REDMI K90系列、一加15、真我GT8 Pro、iQOO14等等。

  • 酒店光脚洗澡可能感染HPV?医生回应:需注意防护

    近日,“酒店光脚洗澡可能感染HPV”的话题引发广泛关注和热议。据媒体报道及医学专家指出,在酒店等公共场所光脚洗澡,确实存在感染跖疣病毒(一种低危型HPV病毒)的可能性,引发公众对公共场所卫生安全的担忧。 ​跖疣是由人乳头瘤病毒(HPV)引起的足部良性增生物,属于低危型HPV感染。在温暖潮湿的环境中,如酒店浴室,如果足部皮肤有微小破损或伤口,且与病毒