当前位置: 首页 > wzjs >正文

php手机网站开发山东网站seo推广优化价格

php手机网站开发,山东网站seo推广优化价格,怎么注册一个网站做色流,鄂尔多斯市网站建设摘要:本文围绕Tlias智能学习辅助系统的登录校验功能展开,深入剖析了实现登录校验的必要性,介绍了会话技术和统一拦截技术等关键实现思路,并对Cookie、Session和令牌技术三种会话跟踪方案进行了详细对比,旨在为系统的安…

摘要:本文围绕Tlias智能学习辅助系统的登录校验功能展开,深入剖析了实现登录校验的必要性,介绍了会话技术和统一拦截技术等关键实现思路,并对Cookie、Session和令牌技术三种会话跟踪方案进行了详细对比,旨在为系统的安全访问提供全面且深入的技术支持。

关键词:登录校验;会话技术;统一拦截技术;会话跟踪方案
参考资料:黑马程序员day12 完整项目请从第10天开始看

一、引言

在完成基础登录功能开发与测试后,发现系统存在安全漏洞,即未登录状态下通过直接输入地址仍可访问后端管理系统页面。为实现只有登录用户才能访问后端系统页面的目标,需引入登录校验机制。

二、登录校验

2.1 问题分析

当前系统虽完成登录功能,但对于部门管理、员工管理及文件上传等接口,服务器端未对用户登录状态进行判断,导致无论用户是否登录,均可访问相关数据。登录校验旨在服务器端接收到浏览器请求后,先校验用户登录状态。若已登录,则执行相应业务操作;若未登录,则返回错误结果并引导前端跳转至登录页面。

HTTP协议是无状态协议,每次请求相互独立,服务器无法直接判断用户是否登录 。实现登录校验需分两步:一是在员工登录成功后存储登录成功信息;二是在浏览器发起请求时,在服务端统一拦截并进行登录校验。为简化相同代码逻辑在各功能中的重复编写,可采用统一拦截技术。实现登录校验主要涉及会话技术和统一拦截技术,其中统一拦截技术有Servlet规范中的Filter过滤器和Spring提供的interceptor拦截器两种方案。

2.2 会话技术

2.2.1 会话技术介绍
  • 会话的定义:在日常生活中,会话指谈话、交谈;在web开发中,会话指浏览器与服务器之间的一次连接。从用户打开浏览器首次访问服务器建立会话,直至任何一方断开连接会话结束。一次会话可包含多次请求和响应,例如在浏览器与服务器均未关闭的情况下,用户依次访问登录接口、部门管理接口和员工管理接口,这三次请求均属于同一次会话。需注意,会话与浏览器相关,多个浏览器客户端与服务器建立连接会产生多个会话,同一浏览器未关闭时的多次请求属于同一个会话,关闭浏览器或服务器会导致会话结束。
  • 会话跟踪的概念:会话跟踪是维护浏览器状态的方法,服务器通过识别多次请求是否来自同一浏览器,实现在同一次会话的多次请求间共享数据。由于HTTP的无状态特性,需通过会话跟踪技术解决后续请求获取前次请求生成数据的问题。
  • 会话跟踪技术分类
    • Cookie(客户端会话跟踪技术):数据存储在客户端浏览器。
    • Session(服务端会话跟踪技术):数据存储在服务端。
    • 令牌技术:令牌作为一种安全凭证,在不同的系统组件或服务之间传递,以验证和授权相关操作。
2.2.2 会话跟踪方案
方案一 - Cookie
  • 实现思路:Cookie作为客户端会话跟踪技术,存储在客户端浏览器。当浏览器首次请求服务器(如请求登录接口),服务器设置Cookie,可在其中存储用户相关数据,如用户名、用户ID。服务器响应数据时会自动通过响应头Set-Cookie将Cookie发送给浏览器浏览器接收后自动存储在本地
  • 后续每次请求,浏览器会自动通过请求头Cookie将本地存储的Cookie携带到服务端。服务端通过判断Cookie值是否存在,确定客户端是否已登录,从而实现同一次会话不同请求间的数据共享。
  • 代码测试
@Slf4j
@RestController
public class SessionController {//设置Cookie@GetMapping("/c1")public Result cookie1(HttpServletResponse response){response.addCookie(new Cookie("login_username","itheima")); //设置Cookie/响应Cookiereturn Result.success();}//获取Cookie@GetMapping("/c2")public Result cookie2(HttpServletRequest request){Cookie[] cookies = request.getCookies();for (Cookie cookie : cookies) {if(cookie.getName().equals("login_username")){System.out.println("login_username: "+cookie.getValue()); //输出name为login_username的cookie}}return Result.success();}
}

访问/c1接口设置Cookie,可在响应头Set-Cookie中看到设置的Cookie,浏览器会自动存储。访问/c2接口时,浏览器会自动通过请求头Cookie将Cookie携带到服务端。

优缺点

优点:是HTTP协议支持的技术,Set-Cookie响应头解析和Cookie请求头数据携带由浏览器自动完成,无需手动操作。
缺点:移动端APP(Android、IOS)无法使用;不安全,用户可禁用;不能跨域。
跨域指当前后端正反向代理服务器分开部署,且协议、IP或端口任意一个维度不同时,如前端部署在http://192.168.150.*200:80*,后端部署在http://192.168.150.*100:8080*,从前端页面访问后端接口即存在跨域操作,此时服务器设置的Cookie无法使用。

方案二 - Session
  • 实现思路:Session是服务端会话跟踪技术,底层基于Cookie实现。浏览器首次请求服务器时,服务器获取会话对象Session,若首次请求则自动创建,每个Session有唯一ID(即JSESSIONID)。服务器响应数据时,将Session的ID通过Set-Cookie响应头以Cookie形式(名为JSESSIONID)发送给浏览器,浏览器自动存储。后续每次请求 ,浏览器将Cookie携带到服务端,服务器通过JSESSIONID从众多Session中找到对应会话对象,实现同一次会话多次请求间的数据共享。
  • 代码测试
@Slf4j
@RestController
public class SessionController {@GetMapping("/s1")public Result session1(HttpSession session){log.info("HttpSession-s1: {}", session.hashCode());session.setAttribute("loginUser", "tom"); //往session中存储数据return Result.success();}@GetMapping("/s2")public Result session2(HttpServletRequest request){HttpSession session = request.getSession();log.info("HttpSession-s2: {}", session.hashCode());Object loginUser = session.getAttribute("loginUser"); //从session中获取数据log.info("loginUser: {}", loginUser);return Result.success(loginUser);}
}

访问/s1接口,响应头会返回Set-Cookie,其中包含JSESSIONID。访问/s2接口,浏览器携带Cookie到服务端,服务器通过JSESSIONID找到对应Session。从控制台日志可看到两次请求获取的Session会话对象hashcode相同,且第二次请求获取到第一次请求存储在Session中的值。

  • 优缺点
    • 优点:数据存储在服务端,相对安全
    • 缺点服务器集群环境下无法直接使用;移动端APP(Android、IOS)因依赖Cookie无法使用;用户可禁用Cookie导致方案失效;不能跨域。在服务器集群环境中,用户登录请求可能被负载均衡服务器分配到不同Tomcat服务器,后续请求可能因找不到对应Session会话对象而出现问题。
方案三 - 令牌技术
  • 实现思路令牌本质是用户身份标识的字符串用户请求登录接口成功后,服务器·生成令牌作为合法身份凭证响应给前端。前端接收到令牌后,可存储在cookie或其他存储空间(如localStorage)。后续每次请求,将令牌携带到服务端,服务端校验令牌有效性,以判断用户是否登录。若需在同一次会话多次请求间共享数据,可将数据存储在令牌中
  • 优缺点
    • 优点:支持PC端和移动端;解决集群环境下的认证问题;减轻服务器存储压力,无需在服务器端存储。
    • 缺点:需要自行实现令牌的生成、传递和校验。

在现代企业开发中,令牌技术因具备诸多优势,成为使用最多的会话跟踪方案,而传统的Cookie和Session方案使用逐渐减少。因此,接下来也将采用令牌技术解决案例项目中的会话跟踪问题。

http://www.dtcms.com/wzjs/215183.html

相关文章:

  • 公司网站建设要求书网络营销和网络推广有什么区别
  • 十堰的网站建设torrentkitty磁力搜索引擎
  • 做网站优化的弊端海外市场推广策略
  • 鼎成中考开卷通有关网站做的电子书最近的新闻热点
  • 延安做网站电话网络营销与管理专业是干什么的
  • 西安做网站的公司有mac蜜桃923色号
  • 做一个动态网站多少钱网络推广是网络营销的基础
  • wordpress怎么做的公司网站优化
  • 徐州提供网站建设要多少钱数据指数
  • 郑州建网站价格宁波seo搜索引擎优化公司
  • 购买网站空间后怎么做专业郑州企业网站建设
  • wordpress如何制作网站深圳互联网公司排行榜
  • 用php做的网站有如何让自己的网站快速被百度收录
  • 房产中介网站开发百度小说搜索热度排行榜
  • 开公司需要多少钱福州seo优化排名推广
  • 合肥网站推广外包公司网店如何引流与推广
  • 公司做网站需要哪些内容优化公司排行榜
  • 济南市建设执业资格注册中心网站引流软件
  • 做茶网站腾讯nba新闻
  • 泌阳县网站建设南宁百度seo排名价格
  • 英文网站建设注意什么seo就业前景
  • 企业网站建设推广方案怎么写360营销
  • 手机端视频网站模板下载网站如何做推广
  • 网站怎么做内容最新百度新闻
  • 做百度网站电话号码怎么创建网址
  • 网站建设哪些长春网络营销公司
  • 做购物网站学什么技术宜昌网站seo
  • 网站数据库做好了 怎么做网页广州最新政策
  • 网站建设栏目设置百度识图在线识图
  • 网站进行诊断优化网站的目的