PHP笔记-用户登录权限拦截说明
这里给出的是一个很常用的权限拦截例子,也是目前主流的方法,但存在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笔记-用户登录权限拦截说明相关推荐
- Spring MVC拦截器实现用户登录权限验证案例
本节将通过拦截器来完成一个用户登录权限验证的 Web 应用 springMVCDemo07,具体要求如下:只有成功登录的用户才能访问系统的主页面main.jsp,如果没有成功登录而直接访问主页面,则拦 ...
- java springmvc权限校验_springmvc拦截器实现用户登录权限验证
实现用户登录权限验证 先看一下我的项目的目录,我是在intellij idea 上开发的 1.先创建一个User类 1 package cn.lzc.po; 2 3 public class User ...
- Spring Boot 统一功能处理(用户登录权限效验-拦截器、异常处理、数据格式返回)
文章目录 1. 统一用户登录权限效验 1.1 最初用户登录权限效验 1.2 Spring AOP 统一用户登录验证 1.3 Spring 拦截器 1.4 练习:登录拦截器 1.5 拦截器实现原理 1. ...
- java spring登录验证_springMVC 用户登录权限验证实现过程解析
通过上网搜资料显示,使用filter和interceptor都可以实现.不过推荐使用interceptor. 下面就使用Interceptor实现用户登录权限验证功能. 拦截器需要实现Inceptor ...
- SpringMVC拦截器-用户登录权限控制代码实现2
在登陆页面输入用户名密码,点击登陆,通过用户名密码进行查询,如果登陆成功,则将用户信息实体存入session,然后跳转到首页,如果登陆失败则继续回到登陆页面 在UserController中编写登陆逻 ...
- SpringMVC拦截器-用户登录权限控制代码实现1
判断用户是否登录 本质:判断session中有没有user,如果没有登陆则先去登陆,如果已经登陆则直接放行访问目标资源 先编写拦截器如下: public class PrivilegeIntercep ...
- ssm实现用户登录功能拦截
拦截情况分为登,录页面不用拦截用户未登录要拦截,登录后根据用户的权限进行操作拦截:如果用户未登录就访问某些页面就拦截该页面请求跳到登录页面,如果用户登录后想执行增加操作,但该用户的权限中没有增加的权限 ...
- 小菜鸟的BBS系统之用户登录及拦截器(SSM)
文件放置 我的login.jsp放置在WEB-INF的jsp下面,所以在springmvc-config.xml里面配置了视图解释器ViewResolver ①web表现层(login.jsp页面点击 ...
- 实现用户登录权限验证
先看一下我的项目的目录,我是在intellij idea 上开发的 1.先创建一个User类 1 package cn.lzc.po;2 3 public class User {4 private ...
最新文章
- php mysql备份脚本_MySQL备份脚本,mysql脚本
- 反向春运成为新趋势 客流年增9%
- dbcontext mysql_.Net Core 2.0数据库第一种方法Mysql DB的Scaffold-DbContext
- null对象 java_java中当给一个对象赋值为null时发生了什么
- zynq网络时钟控制寄存器_【干货分享】ZYNQ开发基本流程
- MySQL中in(常量列表)的执行计划
- boost::fusion::hash_value用法的测试程序
- 文件传送到服务器的软件,远程服务器文件传输软件
- angular-file-upload+springMVC的使用
- 在辉腾锡勒我见到了狼
- c++学习书籍推荐《Advanced C++》下载
- 代号“凤凰”,阿里新零售秘密武器,今年要打入100个城市
- ListView控件获取选中项的内容 c# 114867417
- AudioRecord 采集音频PCM数据
- 手把手打造开源新监控利器check_mk
- Linux编辑启动停止重启springboot jar包脚本
- 深度技术 GHOSTXPSP3 快速装机 2013圣诞节专版
- python实现的椭圆曲线加密
- iOS开发-Bug锦囊
- SMCJ6.0CA TVS二极管应用领域(瞬态抑制二极管)