如果希望在每一段脚本上都进行口令保护,可以结合使用header()语句、$PHP_AUTH_USER和$PHP_AUTH_PW来建立基本的认证方案,通常的基于服务器的提问/响应顺序。
首先,用户从服务器上请求一个文件。如果这个文件在服务器上是被保护的,则在响应的头部向用户返回一个401(示经授权的用户)字符串。浏览器收到这个响应后,弹出要求用户输入用户名/口令的对话框。然后,用户在对话框中输入一个用户名和口令,点击OK按钮将信息返回服务器供认证使用。如果用户名和口令有效,被保护的文件将向用户开放,只要用户还在使用文件,认证会一直有效。
一段简单的PHP脚本文件通过向用户发送一个适当的能够引起自动显示用户名/口令对话框的HTTP头部就可以模仿HTTP的提问/响应系统,PHP把用户在用户名/口令对话框中输入的信息存储在$PHP_AUTH_USER和$PHP_AUTH_PW中,使用这二个变量,就可以与存储在文本文件、数据库等文件中的用户名/口令进行比较。
下面例子采用了二个硬编码的值进行认证,但无论用户名和口令放在什么地方,其原理都是相同的。
<?
/* 检查$PHP_AUTH_USER和$PHP_AUTH_PW中的值*/
if ((!isset($PHP_AUTH_USER)) || (!isset($PHP_AUTH_PW))) {
/* 如果没有值,则发送一个能够引发对话框出现的头部*/
header(’WWW-Authenticate: Basic realm="My Private Stuff"’);
header(’HTTP/1.0 401 Unauthorized’);
echo ’Authorization Required.’;
exit;
} else if ((isset($PHP_AUTH_USER)) && (isset($PHP_AUTH_PW))){
/* 变量中有值,检查它们是否正确*/
if (($PHP_AUTH_USER != "validname") || ($PHP_AUTH_PW != "goodpassword")) {
/* 如果输入的用户名和口令中有一个不正确,则发送一个能够引发对话框出现的头部 */
header(’WWW-Authenticate: Basic realm="My Private Stuff"’);
header(’HTTP/1.0 401 Unauthorized’);
echo ’Authorization Required.’;
exit;
} else if (($PHP_AUTH_USER == "validname") || ($PHP_AUTH_PW == "goodpassword")) {
/* 如果二个值都正确,显示成功的信息 */
echo "<P>You’re authorized!</p>";
}
}
?>
需要注意的是,如果使用的是基于文件的保护机制,它并不能保证目录中所有的文件的安全。它可能保护大部分的文件,如果你认为它能够保护给定目录中的所有文件,你的这种认识就需要变变了。
分享到:
相关推荐
基于Web的subversion用户管理系统 摘 要 本系统主要是基于Web的subversion系统的用户管理系统。在开源软件世界,并行版本系统(cvs)一直是版本控制长久以来的唯一选择,但是,和其它许多工具一样,cvs开始显露出衰老...
基于Web的subversion用户管理系统 摘 要 本系统主要是基于Web的subversion系统的用户管理系统。在开源软件世界,并行版本系统(cvs)一直是版本控制长久以来的唯一选择,但是,和其它许多工具一样,cvs开始显露出衰老...
基于PHP的高校校园网外用户访问校园网络资源认证系统的设计与实现.pdf
本系统主要是基于Web的subversion系统的用户管理系统。在开源软件世界,并行版本系统(cvs)一直是版本控制长久以来的唯一选择,但是,和其它许多工具一样,cvs开始显露出衰老的迹象,而subversion,正是以cvs继任者的...
用户认证和权限管理: 实现用户注册和登录功能。 设计用户角色和权限管理系统。 确保用户数据的安全性(如密码加密存储)。 创建系统页面: 创建主页,显示系统欢迎信息和主要功能链接。 创建学生页面,用于学生...
基于php的毕业设计-校园兼职网站.rar 【项目技术】 开发语言:php 数据库:mysql 【实现功能】 划分为了五大模块:实名认证管理模块、兼职信息管理模块、双方互评模块、论坛模块、用户管理模块。 (1)实名认证模块...
通过设计开发一个基于PHP校园兼职信息系统,该系统具有独特的用户(招聘人员和兼职人员)信息验证功能,不仅为双方提供了一个有效的信息交互平台,保证了信息的真实性和有效性,而且起到了很好的作用在丰富大学生...
很多用户在开发微信版网页的时候,需要获取用户的基本信息,比如国家,省,市,昵称等,我们接下来基于PHP语言基础详细分析一下如何成功获取。 必要条件: 1)公众号认证 2)有网页授权获取用户基本信息的权限接口 ...
接下来,论文详细阐述了每个功能模块的具体实现细节,包括用户认证、服务器监控、任务调度等核心功能。最后,论文介绍了系统的测试方法和结果,证明了系统的稳定性和可靠性。 本资源适合对PHP编程和Linux系统管理感...
云端以PHP加MYSQL非常成熟的技术开发,开发完成各基础的功能, 用户可根据自身的运营需求,简单修改PHP页面或程序来实现不同的运营需求。 基于OPENWRT固件或DD-WRT固件等路由器开源系统,适合于对自身运营数据的...
通用后台角色权限管理系统, 基于 vue-element-admin 和 PHP CodeIgniter 3.1.10 RESTful 实现, 采用前后端分离架构的权限管理系统,PHP快速开发平台,目标是搭建一套简洁易用的快速解决方案,可以帮助用户有效降低...
实现了基本的权限管理,本系统是基于权限节点进行认证,可控制菜单显示隐藏,基于角色控制权限节点。 1、前端框架:layui2.5.6 2、后端框架:ThinkPHP5.1.39LTS 3、后端界面基于layuimini 权限管理系统安装教程: 1...
(基于mysql的php毕业设计)校园校园兼职网站(源码) 【项目技术】 开发语言:php 数据库:mysql 【实现功能】 划分为了五大模块:实名认证管理模块、兼职信息管理模块、双方互评模块、论坛模块、用户管理模块。 (1)...
基于OPENWRT固件或DD-WRT固件等路由器开源系统,适合于对自身运营数据的控制需求,将认证系统部署在内部使用。 “智慧无线”以完全开源,完全搭配OPENWRT固件或DD-WRT固件接口开发,特别适合各个不同领域的无线认证...
1.客户端(网页形式) a.普通用户登录、注册...管理员登录认证 b.对问题、留言、意见、用户进行增删改查功能 c.对问卷进行管理 a)查看问卷有哪些问题 b)查看每一个用户的作答结果 c)统计一共有多少人参与调查
带领同学们认识Laravel用户认证的两大核心要素,守卫者与数据提供者,并从源码层面分析用户认证中涉及到的核心概念,通过基于接口签名的认证逻辑,带领同学们实现自定义守卫者以及签名认证器,实现基于签名认证的...
微信小程序端实现了用户在微信小程序端的购物体验,用户在微信App中使用微信号认证并登录微信小程序,进入小程序的首页,查看推荐的商品,如果要按需查找商品,可以在商品搜索界面输入商品名称搜索所需要的商品,...
此代码是我以前的工作日志与用户登记系统中的改进。...在理论上通过阅读《基于一次性口令的身份认证系统的设计与实现》对这个题目的框架有了较好的理解,但是能力上还有些欠缺,精力有限无法完全实现论文内容。