gtxyzz

硬核总结 9 个关于认证授权的常见问题!看看自己能回答几个!

gtxyzz 安全防护 2022-12-04 337浏览 0

大家好,我是Guide哥!相信很多人对认证授权方面都不是特别了解,搞不清Session认证、JWT以及 Cookie 这些概念。所以,根据我根据日常对这部分学习已经在项目中的实际运用总结了这8 个相关的问题并且附上了详细的回答(这篇文章这么晚才发的原因)。

硬核总结 9 个关于认证授权的常见问题!看看自己能回答几个!

所有问题如下,开始看答案之前不妨自己测验一下自己究竟能回答几个。

ps:部分问题其实我在之前写JWT相关的文章的时候已经提到过了,看过的朋友看一下自己还记得不?

  1. 认证 (Authentication) 和授权 (Authorization)的区别是什么?
  2. 什么是Cookie ? Cookie的作用是什么?如何在服务端使用 Cookie ?
  3. Cookie 和 Session 有什么区别?如何使用Session进行身份验证?
  4. 如果没有Cookie的话Session还能用吗?
  5. 为什么Cookie 无法防止CSRF攻击,而token可以?
  6. 什么是 Token?什么是 JWT?如何基于Token进行身份验证?
  7. 什么是OAuth 2.0?
  8. 什么是 SSO?

    1. 认证 (Authentication) 和授权 (Authorization)的区别是什么?这是一个绝大多数人都会混淆的问题。

    首先先从读音上来认识这两个名词,很多人都会把它俩的读音搞混,所以我建议你先先去查一查这两个单词到底该怎么读,他们的具体含义是什么。

    说简单点就是:

    认证 (Authentication): 你是谁。

    硬核总结 9 个关于认证授权的常见问题!看看自己能回答几个!

    授权 (Authorization): 你有权限干什么。

    硬核总结 9 个关于认证授权的常见问题!看看自己能回答几个!

    稍微正式点(啰嗦点)的说法就是:

    • Authentication(认证) 是验证您的身份的凭据(例如用户名/用户ID和密码),通过这个凭据,系统得以知道你就是你,也就是说系统存在你这个用户。所以,Authentication 被称为身份/用户验证。
    • Authorization(授权) 发生在 Authentication(认证) 之后。授权嘛,光看意思大家应该就明白,它主要掌管我们访问系统的权限。比如有些特定资源只能具有特定权限的人才能访问比如admin,有些对系统资源操作比如删除、添加、更新只能特定人才具有。

    这两个一般在我们的系统中被结合在一起使用,目的就是为了保护我们系统的安全性。

    2. 什么是Cookie ? Cookie的作用是什么?如何在服务端使用 Cookie ?

    硬核总结 9 个关于认证授权的常见问题!看看自己能回答几个!

    2.1 什么是Cookie ? Cookie的作用是什么?

    Cookie 和 Session都是用来跟踪浏览器用户身份的会话方式,但是两者的应用场景不太一样。

    维基百科是这样定义 Cookie 的:Cookies是某些网站为了辨别用户身份而储存在用户本地终端上的数据(通常经过加密)。简单来说: Cookie 存放在客户端,一般用来保存用户信息。

    下面是 Cookie 的一些应用案例:

    • 我们在 Cookie 中保存已经登录过的用户信息,下次访问网站的时候页面可以自动帮你登录的一些基本信息给填了。除此之外,Cookie 还能保存用户首选项,主题和其他设置信息。
    • 使用Cookie 保存 session 或者 token ,向后端发送请求的时候带上 Cookie,这样后端就能取到session或者token了。这样就能记录用户当前的状态了,因为 HTTP 协议是无状态的。
    • Cookie 还可以用来记录和分析用户行为。举个简单的例子你在网上购物的时候,因为HTTP协议是没有状态的,如果服务器想要获取你在某个页面的停留状态或者看了哪些商品,一种常用的实现方式就是将这些信息存放在Cookie

    2.2 如何在服务端使用 Cookie 呢?

    这部分内容

继续浏览有关 安全 的文章
发表评论