Ashing's Blog

想学的太多 懂得的太少

0%

0x01 OAuth

  • OAuth(开放授权)是一个开放的授权标准,允许用户让第三方应用访问该用户在某一web服务上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。

1 原理

  • 思路:OAuth在”客户端”与”服务提供商”之间,设置了一个授权层(authorization layer)。”客户端”登录授权层,在授权层拿到Token(Token携带权限范围和时间等),再去访问目标网站

    • OAuth允许用户提供一个令牌(Token),而不是用户名和密码来访问他们存放在特定服务提供者的数据。
    • 每一个令牌授权一个特定的第三方系统(例如,视频编辑网站)在特定的时段(例如,接下来的2小时内)内访问特定的资源(例如仅仅是某一相册中的视频)。
    • 这样,OAuth让用户可以授权第三方网站访问他们存储在另外服务提供者的某些特定信息,而非所有内容

2 四种授权模式

阅读全文 »

0x01 起源

  • 在前后端分离的应用中,后端为Model层,为前端提供数据访问的API。为了保证数据安全可靠地在用户与服务端之间传输,实现服务端的认证就极为必要。

  • 常见的服务端认证方法有:

    • 基于Cookie的认证:session

      • 每次请求都带上cookie,取出相应字段并与服务端进行对比,以实现身份的认证(具有CORS问题)
    • 基于Token的认证:Json Web Toekn

      • 请求在HTTP的头部(或其他位置)附上token,由服务器check signature来实现
  • JWT不一定完全取代Cookie-Session Auth体制,其也存在缺点。JWT更适合用于认证签名的过程,更适合一次性操作的认证。

0x02 什么是Json Web Token?

  • JWT是一套开放的Json标准,定义了一套简介且URL安全的方案,以安全地在客户端和服务器之间传输Json格式的信息

0x03 JWT的特点

阅读全文 »

0x01 Token

  • Token=令牌。服务端生成的一串字符串。是客户端进行请求的一个标识,用来作为访问资源的凭据。
  • 类似于临时的证书签名, 并且是一种服务端无状态的认证方式,非常适合于 REST API 的场景。所谓无状态就是服务端并不会保存身份认证相关的数据。

0x02 Token组成

  • UID:用户唯一的身份标识
  • TIME:时间戳
  • Sign:签名(token的前几位以哈希算法压缩成的一定长度的十六进制字符串)
  • 固定参数(可选): 将一些常用的固定参数加入到 token 中是为了避免重复查库

0x03 Token分类

阅读全文 »

  • HTTP是一种没有状态的协议,它并不知道是谁访问了应用。所以服务器必须记录用户的状态,进行认证、授权,进而控制用户操作。
  • 随着技术的发展出现了很多认证授权机制。目前,比较成熟完善的是 Cookie/Session 机制。近几年,由于JWT机制更好得释放了服务端的资源,也变得火热起来。不过,还不够成熟容易出现很多问题。
  • 所以,在更高效、更安全的方案出现前,Cookie/Session 机制可能仍然是将来Web认证授权的中流砥柱。

0x01 HTTP Basic Auth

  • HTTP Basic Auth是最原始的认证方式,现在已经被淘汰

1 原理

  • 每次请求API时都提供用户的username和password
阅读全文 »