这里给出的是一个很常用的权限拦截例子,也是目前主流的方法,但存在cookie劫持,有安全风险。后面有博文说如何去解决。

对应的权限登录的类是这样的:

class PrivilegeController extends Controller {..................
}

其中权限是在Controller类中,如下:

class Controller{protected $smarty;public function __construct(){include VENDOR_PATH . "smarty/Smarty.class.php";$this->smarty = new \Smarty();$this->smarty->template_dir = APP_PATH . P . "/view/";$this->smarty->compile_dir = RESOURCES_PATH . "views";if(strtolower(C) != "privilege"){if(isset($_COOKIE['id'])){$userModel = new UserModel();$user = $userModel->getById((int)$_COOKIE['id']);if($user){$_SESSION['user'] = $user;return;}}$this->error("未登录,请先登录", "user", "privilege", "login");}}........................
}

从中可以看到这里主要是通过拿到浏览器的COOKIE来判断,拿的这个值通过查询(商用库、Redis等)存不存,存在就放行。并且把$_SESSION['user']存起来。

另外,只有Controller不为privilege的请求,都会被拦截。

设置COOKIE是在登录函数里面,如下:

    public function check(){$useName = trim($_POST["userName"]);$password = trim($_POST["password"]);$captcha = trim($_POST["captcha"]);..................@session_start();$_SESSION['user'] = $user;setcookie('id',$user['user_id'],time() + 1 * 24 * 3600);$this->success("登录成功", '', 'dashboard', "index");}

退出登录的:

    public function logout(){session_destroy();setcookie('id','',1);$this->success("退出成功", "", "", "login");}

这里设置的cookie是哪里user_id,对应的是这个

通过修改php.ini可以看其session

内容如下:

但这种,存在cookie劫持,并且这里会把user_id带给cookie也是有风险的:

PHP笔记-用户登录权限拦截说明相关推荐

  1. Spring MVC拦截器实现用户登录权限验证案例

    本节将通过拦截器来完成一个用户登录权限验证的 Web 应用 springMVCDemo07,具体要求如下:只有成功登录的用户才能访问系统的主页面main.jsp,如果没有成功登录而直接访问主页面,则拦 ...

  2. java springmvc权限校验_springmvc拦截器实现用户登录权限验证

    实现用户登录权限验证 先看一下我的项目的目录,我是在intellij idea 上开发的 1.先创建一个User类 1 package cn.lzc.po; 2 3 public class User ...

  3. Spring Boot 统一功能处理(用户登录权限效验-拦截器、异常处理、数据格式返回)

    文章目录 1. 统一用户登录权限效验 1.1 最初用户登录权限效验 1.2 Spring AOP 统一用户登录验证 1.3 Spring 拦截器 1.4 练习:登录拦截器 1.5 拦截器实现原理 1. ...

  4. java spring登录验证_springMVC 用户登录权限验证实现过程解析

    通过上网搜资料显示,使用filter和interceptor都可以实现.不过推荐使用interceptor. 下面就使用Interceptor实现用户登录权限验证功能. 拦截器需要实现Inceptor ...

  5. SpringMVC拦截器-用户登录权限控制代码实现2

    在登陆页面输入用户名密码,点击登陆,通过用户名密码进行查询,如果登陆成功,则将用户信息实体存入session,然后跳转到首页,如果登陆失败则继续回到登陆页面 在UserController中编写登陆逻 ...

  6. SpringMVC拦截器-用户登录权限控制代码实现1

    判断用户是否登录 本质:判断session中有没有user,如果没有登陆则先去登陆,如果已经登陆则直接放行访问目标资源 先编写拦截器如下: public class PrivilegeIntercep ...

  7. ssm实现用户登录功能拦截

    拦截情况分为登,录页面不用拦截用户未登录要拦截,登录后根据用户的权限进行操作拦截:如果用户未登录就访问某些页面就拦截该页面请求跳到登录页面,如果用户登录后想执行增加操作,但该用户的权限中没有增加的权限 ...

  8. 小菜鸟的BBS系统之用户登录及拦截器(SSM)

    文件放置 我的login.jsp放置在WEB-INF的jsp下面,所以在springmvc-config.xml里面配置了视图解释器ViewResolver ①web表现层(login.jsp页面点击 ...

  9. 实现用户登录权限验证

    先看一下我的项目的目录,我是在intellij idea 上开发的 1.先创建一个User类 1 package cn.lzc.po;2 3 public class User {4 private ...

最新文章

  1. php mysql备份脚本_MySQL备份脚本,mysql脚本
  2. 反向春运成为新趋势 客流年增9%
  3. dbcontext mysql_.Net Core 2.0数据库第一种方法Mysql DB的Scaffold-DbContext
  4. null对象 java_java中当给一个对象赋值为null时发生了什么
  5. zynq网络时钟控制寄存器_【干货分享】ZYNQ开发基本流程
  6. MySQL中in(常量列表)的执行计划
  7. boost::fusion::hash_value用法的测试程序
  8. 文件传送到服务器的软件,远程服务器文件传输软件
  9. angular-file-upload+springMVC的使用
  10. 在辉腾锡勒我见到了狼
  11. c++学习书籍推荐《Advanced C++》下载
  12. 代号“凤凰”,阿里新零售秘密武器,今年要打入100个城市
  13. ListView控件获取选中项的内容 c# 114867417
  14. AudioRecord 采集音频PCM数据
  15. 手把手打造开源新监控利器check_mk
  16. Linux编辑启动停止重启springboot jar包脚本
  17. 深度技术 GHOSTXPSP3 快速装机 2013圣诞节专版
  18. python实现的椭圆曲线加密
  19. iOS开发-Bug锦囊
  20. SMCJ6.0CA TVS二极管应用领域(瞬态抑制二极管)

热门文章

  1. android 回车键事件编程
  2. ASP.Net防止页面刷新重复提交
  3. 跳转到系统默认的Home
  4. mssql2008极占内存
  5. XNA中三维空间物体的几种旋转方法
  6. 数据可视化最容易被人忽略的四大误区,怪不得我的报告总被老板骂
  7. 飞秋官方下载 这个程序很不错
  8. C++程序设计真得不适合
  9. 企业即时通讯规模将达7亿
  10. 什么叫企业级即时通讯软件