`
gzycnet
  • 浏览: 31259 次
  • 性别: Icon_minigender_1
  • 来自: 贵阳
社区版块
存档分类
最新评论

基于PHP的用户认证

阅读更多
 
    如果希望在每一段脚本上都进行口令保护,可以结合使用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>"; 
      }
    }
    ?>   

    需要注意的是,如果使用的是基于文件的保护机制,它并不能保证目录中所有的文件的安全。它可能保护大部分的文件,如果你认为它能够保护给定目录中的所有文件,你的这种认识就需要变变了。
分享到:
评论

相关推荐

    PHP基于Web的subversion用户管理系统(源代码+论文)

    基于Web的subversion用户管理系统 摘 要 本系统主要是基于Web的subversion系统的用户管理系统。在开源软件世界,并行版本系统(cvs)一直是版本控制长久以来的唯一选择,但是,和其它许多工具一样,cvs开始显露出衰老...

    PHP基于Web的subversion用户管理系统(源代码+论文).zip

    基于Web的subversion用户管理系统 摘 要 本系统主要是基于Web的subversion系统的用户管理系统。在开源软件世界,并行版本系统(cvs)一直是版本控制长久以来的唯一选择,但是,和其它许多工具一样,cvs开始显露出衰老...

    基于PHP的高校校园网外用户访问校园网络资源认证系统的设计与实现.pdf

    基于PHP的高校校园网外用户访问校园网络资源认证系统的设计与实现.pdf

    基于Web的subversion用户管理系统

    本系统主要是基于Web的subversion系统的用户管理系统。在开源软件世界,并行版本系统(cvs)一直是版本控制长久以来的唯一选择,但是,和其它许多工具一样,cvs开始显露出衰老的迹象,而subversion,正是以cvs继任者的...

    基于PHP的学生作业系统

    用户认证和权限管理: 实现用户注册和登录功能。 设计用户角色和权限管理系统。 确保用户数据的安全性(如密码加密存储)。 创建系统页面: 创建主页,显示系统欢迎信息和主要功能链接。 创建学生页面,用于学生...

    基于php的毕业设计-校园兼职网站.rar

    基于php的毕业设计-校园兼职网站.rar 【项目技术】 开发语言:php 数据库:mysql 【实现功能】 划分为了五大模块:实名认证管理模块、兼职信息管理模块、双方互评模块、论坛模块、用户管理模块。 (1)实名认证模块...

    基于php的校园兼职网站的设计与实现.zip

    通过设计开发一个基于PHP校园兼职信息系统,该系统具有独特的用户(招聘人员和兼职人员)信息验证功能,不仅为双方提供了一个有效的信息交互平台,保证了信息的真实性和有效性,而且起到了很好的作用在丰富大学生...

    实例分析基于PHP微信网页获取用户信息

    很多用户在开发微信版网页的时候,需要获取用户的基本信息,比如国家,省,市,昵称等,我们接下来基于PHP语言基础详细分析一下如何成功获取。 必要条件: 1)公众号认证 2)有网页授权获取用户基本信息的权限接口 ...

    php项目-PHP基于Linux的远程管理系统客户端的实现(源代码+论文).rar

    接下来,论文详细阐述了每个功能模块的具体实现细节,包括用户认证、服务器监控、任务调度等核心功能。最后,论文介绍了系统的测试方法和结果,证明了系统的稳定性和可靠性。 本资源适合对PHP编程和Linux系统管理感...

    WIFI第三方认证系统(智能wifi系统,智慧无线WiFi,路由器云端控制系统)

    云端以PHP加MYSQL非常成熟的技术开发,开发完成各基础的功能, 用户可根据自身的运营需求,简单修改PHP页面或程序来实现不同的运营需求。 基于OPENWRT固件或DD-WRT固件等路由器开源系统,适合于对自身运营数据的...

    基于vue-element-admin+php的RBAC通用角色权限管理系统.zip

    通用后台角色权限管理系统, 基于 vue-element-admin 和 PHP CodeIgniter 3.1.10 RESTful 实现, 采用前后端分离架构的权限管理系统,PHP快速开发平台,目标是搭建一套简洁易用的快速解决方案,可以帮助用户有效降低...

    PHP权限管理系统源码

    实现了基本的权限管理,本系统是基于权限节点进行认证,可控制菜单显示隐藏,基于角色控制权限节点。 1、前端框架:layui2.5.6 2、后端框架:ThinkPHP5.1.39LTS 3、后端界面基于layuimini 权限管理系统安装教程: 1...

    (基于mysql的php毕业设计)校园校园兼职网站(源码)

    (基于mysql的php毕业设计)校园校园兼职网站(源码) 【项目技术】 开发语言:php 数据库:mysql 【实现功能】 划分为了五大模块:实名认证管理模块、兼职信息管理模块、双方互评模块、论坛模块、用户管理模块。 (1)...

    WIFI第三方认证系统第一版

    基于OPENWRT固件或DD-WRT固件等路由器开源系统,适合于对自身运营数据的控制需求,将认证系统部署在内部使用。 “智慧无线”以完全开源,完全搭配OPENWRT固件或DD-WRT固件接口开发,特别适合各个不同领域的无线认证...

    基于PHP的调查问卷智能生成系统

    1.客户端(网页形式) a.普通用户登录、注册...管理员登录认证 b.对问题、留言、意见、用户进行增删改查功能 c.对问卷进行管理 a)查看问卷有哪些问题 b)查看每一个用户的作答结果 c)统计一共有多少人参与调查

    基于Laravel 8.x的API接口签名认证系统

    带领同学们认识Laravel用户认证的两大核心要素,守卫者与数据提供者,并从源码层面分析用户认证中涉及到的核心概念,通过基于接口签名的认证逻辑,带领同学们实现自定义守卫者以及签名认证器,实现基于签名认证的...

    基于微信小程序的二手市场系统的设计与实现.docx

    微信小程序端实现了用户在微信小程序端的购物体验,用户在微信App中使用微信号认证并登录微信小程序,进入小程序的首页,查看推荐的商品,如果要按需查找商品,可以在商品搜索界面输入商品名称搜索所需要的商品,...

    身份认证程序设计

    此代码是我以前的工作日志与用户登记系统中的改进。...在理论上通过阅读《基于一次性口令的身份认证系统的设计与实现》对这个题目的框架有了较好的理解,但是能力上还有些欠缺,精力有限无法完全实现论文内容。

Global site tag (gtag.js) - Google Analytics