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

天津建设网站公司高港区拖拽式网页制作平台

天津建设网站公司,高港区拖拽式网页制作平台,文章分享网站模版,微信接单任务群目录 认证 (Authentication) 和授权 (Authorization)的区别是什么#xff1f; RBAC 模型了解吗#xff1f; 什么是 Cookie ? Cookie 的作用是什么? 如何在项目中使用 Cookie 呢#xff1f; 如何在 Spring Boot 中创建和读取 Cookie 创建 Cookie Cookie 到期日期 安全… 目录 认证 (Authentication) 和授权 (Authorization)的区别是什么 RBAC 模型了解吗 什么是 Cookie ? Cookie 的作用是什么? 如何在项目中使用 Cookie 呢 如何在 Spring Boot 中创建和读取 Cookie 创建 Cookie Cookie 到期日期 安全 Cookie HttpOnly 安全特性  Cookie 路径 读取 Cookie 读取所有 Cookie 删除 Cookie 总结 这是一个绝大多数人都会混淆的问题。首先先从读音上来认识这两个名词很多人都会把它俩的读音搞混所以我建议你先先去查一查这两个单词到底该怎么读他们的具体含义是什么。 说简单点就是 认证 (Authentication) 你是谁。授权 (Authorization) 你有权限干什么。 稍微正式点啰嗦点的说法就是 Authentication认证 是验证您的身份的凭据例如用户名/用户 ID 和密码通过这个凭据系统得以知道你就是你也就是说系统存在你这个用户。所以Authentication 被称为身份/用户验证。Authorization授权 发生在 Authentication认证 之后。授权嘛光看意思大家应该就明白它主要掌管我们访问系统的权限。比如有些特定资源只能具有特定权限的人才能访问比如 admin有些对系统资源操作比如删除、添加、更新只能特定人才具有。 认证 比如像qq 我们常见的登录就都是认证 授权 没有权限 这两个一般在我们的系统中被结合在一起使用目的就是为了保护我们系统的安全性。 RBAC 模型了解吗 系统权限控制最常采用的访问控制模型就是 RBAC 模型 。 什么是 RBAC 呢 RBAC 即基于角色的权限访问控制Role-Based Access Control。这是一种通过角色关联权限角色同时又关联用户的授权的方式。 简单地说一个用户可以拥有若干角色每一个角色又可以被分配若干权限这样就构造成“用户-角色-权限” 的授权模型。在这种模型中用户与角色、角色与权限之间构成了多对多的关系。 在 RBAC 权限模型中权限与角色相关联用户通过成为包含特定角色的成员而得到这些角色的权限这就极大地简化了权限的管理。 为了实现 RBAC 权限模型数据库表的常见设计如下一共 5 张表2 张用户建立表之间的联系 通过这个权限模型我们可以创建不同的角色并为不同的角色分配不同的权限范围菜单。  通常来说如果系统对于权限控制要求比较严格的话一般都会选择使用 RBAC 模型来做权限控制。 什么是 Cookie ? Cookie 的作用是什么? Cookie 和 Session 都是用来跟踪浏览器用户身份的会话方式但是两者的应用场景不太一样。 维基百科是这样定义 Cookie 的 Cookies 是某些网站为了辨别用户身份而储存在用户本地终端上的数据通常经过加密。 简单来说Cookie 存放在客户端一般用来保存用户信息。 下面是 Cookie 的一些应用案例 我们在 Cookie 中保存已经登录过的用户信息下次访问网站的时候页面可以自动帮你登录的一些基本信息给填了。除此之外Cookie 还能保存用户首选项主题和其他设置信息。使用 Cookie 保存 SessionId 或者 Token 向后端发送请求的时候带上 Cookie这样后端就能取到 Session 或者 Token 了。这样就能记录用户当前的状态了因为 HTTP 协议是无状态的。Cookie 还可以用来记录和分析用户行为。举个简单的例子你在网上购物的时候因为 HTTP 协议是没有状态的如果服务器想要获取你在某个页面的停留状态或者看了哪些商品一种常用的实现方式就是将这些信息存放在 Cookie…… 如何在项目中使用 Cookie 呢 我这里以 Spring Boot 项目为例。 )设置 Cookie 返回给客户端 GetMapping(/change-username) public String setCookie(HttpServletResponse response) {// 创建一个 cookieCookie cookie new Cookie(username, Jovan);//设置 cookie过期时间cookie.setMaxAge(7 * 24 * 60 * 60); // expires in 7 days//添加到 response 中response.addCookie(cookie);return Username is changed!; } 2) 使用 Spring 框架提供的 CookieValue 注解获取特定的 cookie 的值 GetMapping(/login) public String readCookie(CookieValue(value username, defaultValue Atta) String username) {return Hey! My username is username; } 3) 读取所有的 Cookie 值 GetMapping(/all-cookies) public String readAllCookies(HttpServletRequest request) {Cookie[] cookies request.getCookies();if (cookies ! null) {return Arrays.stream(cookies).map(c - c.getName() c.getValue()).collect(Collectors.joining(, ));}return No cookies; } 如何在 Spring Boot 中创建和读取 Cookie 创建 Cookie 要在 Spring Boot 中设置 cookie我们可以使用类中的方法。您需要做的就是创建一个新实例并将其添加到响应中如下所示addCookie()HttpServletResponseCookie GetMapping(/change-username) public String setCookie(HttpServletResponse response) {// create a cookieCookie cookie new Cookie(username, Jovan);//add a cookie to the responseresponse.addCookie(cookie);return Username is changed!; } Cookie 到期日期 如果没有为 Cookie 指定过期时间则只要会话未过期它就会持续存在。此类 Cookie 称为会话 Cookie。会话 Cookie 将保持活动状态直到用户关闭浏览器或清除 Cookie。上面创建的 cookie 实际上是会话 cookie。username 但是你可以覆盖这个默认行为并使用类的方法设置 cookie 过期时间setMaxAge()Cookie // create a cookie Cookie cookie new Cookie(username, Jovan); cookie.setMaxAge(7 * 24 * 60 * 60); // expires in 7 days//add a cookie to the response response.addCookie(cookie); 现在cookie 将在接下来的 7 天内保持活动状态而不是在浏览器关闭时过期。在指定日期和时间过期的 Cookie 称为永久 Cookie。username 注意传递给 method 的过期时间以秒为单位。到期日期和时间是相对于设置 Cookie 的客户端而不是服务器的。setMaxAge() 安全 Cookie 安全 Cookie 仅通过加密的 HTTPS 连接发送到服务器。安全 Cookie 无法通过未加密的 HTTP 连接传输到服务器。 要制作 cookie 请使用以下方法  // create a cookie Cookie cookie new Cookie(username, Jovan); cookie.setMaxAge(7 * 24 * 60 * 60); // expires in 7 days cookie.setSecure(true);//add a cookie to the response response.addCookie(cookie); HttpOnly 安全特性  浏览器中的是什么 HttpOnly标志是一个安全特性由服务器通过设置在HTTP响应头中的Set-Cookie字段来启用。启用后它告诉浏览器这个特定的Cookie应该对客户端的JavaScript代码不可访问以防止例如跨站脚本XSS的攻击者通过脚本窃取Cookie信息。虽然HttpOnly不是全面防护措施但它显著增加了攻击者盗取用户会话的难度。   如果为 Cookie 设置了该属性则客户端脚本无法访问该属性。例如您不能使用 property 访问 JavaScript 中的 Cookie。 // create a cookie Cookie cookie new Cookie(username, Jovan); cookie.setMaxAge(7 * 24 * 60 * 60); // expires in 7 days cookie.setSecure(true); cookie.setHttpOnly(true);//add a cookie to the response response.addCookie(cookie); 这是保护 cookie 不被恶意代码或跨站点脚本 XSS 攻击更改的一种方法。 Cookie 路径 该属性指定应将 Cookie 发送到服务器的 URL 路径。默认情况下如果未指定路径则仅将 Cookie 发送到用于在浏览器中设置该 URL 的服务器。Path 您可以使用该方法为 cookie 设置指令setPath()   // create a cookie Cookie cookie new Cookie(username, Jovan); cookie.setMaxAge(7 * 24 * 60 * 60); // expires in 7 days cookie.setSecure(true); cookie.setHttpOnly(true); cookie.setPath(/); // global cookie accessible every where//add a cookie to the response response.addCookie(cookie); 通过显式设置该指令cookie 将被传送到指定的 URL 及其所有子目录。Path 读取 Cookie Spring 框架提供 Comments 来获取任何 HTTP cookie 的值而无需迭代从请求中获取的所有 cookie。此 Comments 可用于将 cookie 的值映射到控制器方法参数CookieValue GetMapping(/) public String readCookie(CookieValue(value username, defaultValue Atta) String username) {return Hey! My username is username; } 在上面的代码片段中请注意 .如果未设置默认值则 Spring 将在 HTTP 请求中找不到具有该名称的 cookie 时引发异常。defaultValue Attajava.lang.IllegalStateExceptionusername 读取所有 Cookie 除了使用注解我们还可以将类用作控制器方法参数来读取所有 cookie。此类提供了将浏览器发送的所有 Cookie 作为 .CookieValueHttpServletRequestgetCookies()Cookie GetMapping(/all-cookies) public String readAllCookies(HttpServletRequest request) {Cookie[] cookies request.getCookies();if (cookies ! null) {return Arrays.stream(cookies).map(c - c.getName() c.getValue()).collect(Collectors.joining(, ));}return No cookies; } 删除 Cookie 要删除 Cookie您需要创建具有相同名称和指令 to 的类的新实例然后再次将其添加到响应中如下所示CookieMax-Age0 // create a cookie Cookie cookie new Cookie(username, null); cookie.setMaxAge(0); cookie.setSecure(true); cookie.setHttpOnly(true); cookie.setPath(/);//add a cookie to the response response.addCookie(cookie); 总结 Cookie 提供了一种在服务器和浏览器之间交换信息的方法以管理会话登录、购物车、游戏分数、记住用户偏好主题、隐私政策接受度并跟踪整个网站的用户行为。 Spring Boot 提供了一种读取、写入和删除 HTTP cookie 的简单方法。 CookieValue annotation 将 cookie 的值映射到 method 参数。您应该设置默认值以避免在 Cookie 不可用时出现运行时异常。HttpServletResponse类可用于在浏览器中设置新的 Cookie。您只需创建一个实例并将其添加到响应中。Cookie要读取所有 cookie您可以使用 方法该方法返回一个数组 .HttpServletRequestgetCookies()CookieMax-Agedirective 指定 cookie 过期的日期和时间。如果要在 Cookie 中存储敏感信息请确保设置 and 属性以避免 XSS 攻击。SecureHttpOnly设置 使 Cookie 在当前域的所有位置均可访问。Path/要删除 Cookie请将 设置为 to 并传递您首次设置它时使用的所有属性。Max-Age0
http://www.hkea.cn/news/14415779/

相关文章:

  • 四川微信网站建设蓝海电商怎么做
  • 购物帮做特惠的导购网站成都公司注册流程及费用
  • 工程网站建设最新国际新闻热点
  • 网站建设伍际网络平板网站建设
  • 杭州网站公司哪家服务好wordpress ckplayer
  • 全国思政网站的建设情况智慧团建电脑版登录
  • 做网站必须原创吗京东网上购物商城购物
  • 网站推广解释阿里云虚拟主机做企业网站
  • 山东钢结构建设局网站鼠标放上去图片放大的网站
  • 毕设做网站难吗创造网站需要什么条件
  • 做网站的收获乐清在线网
  • 图片网站模板下载网站设计时图片怎么做
  • 万维网注册域名后怎么导入网站河南省建设厅网站154号文件
  • 网站如何做免费的推广网站做哪些主题比较容易做
  • 做网站的控件什么样的网站好优化
  • saas建站平台域名注册服务
  • 南京网络建站公司有做学历在网站能查的到的
  • 个人备案经营网站备案吗网上代理商
  • 网站开发准备流程图村志网站建设
  • 腾讯云做淘客网站pta程序设计平台
  • wordpress vue网站网站地图 html
  • 建设网站的网站安全骨骼型的网站
  • 怎么免费创建自己的网站平台烟台学校网站建设
  • 网站是什么样的长安网站优化公司
  • 做旅游网站的佛山网站建设怎么选
  • 常州建设工程监理员挂证网站wordpress更改地址后404.3
  • 铭泰东莞网站建设wordpress15天教
  • 网站建设环境配置免费源码下载哪个好
  • 建设网站群的好处网站服务内容怎样选
  • 自己做的网站添加交费功能邯郸一站式网络推广欢迎咨询