cookie的起源:购物车

工作机制

image-20220106213854345

作用

管理登录状态-session

image-20220106214323899

image-20220106214351392

image-20220106214414711

个性化-保存个性化设置

image-20220106214528426

image-20220106214549801

分析用户行为

image-20220106214819442

通过第三方统计来记录你的用户画像,访问数据之类

image-20220106214943967

XSS:跨站攻击(http)

XSRF 跨站请求访问 通过Refere记录来辨别

Authorization

Basic token

image-20220106215453632

Bearer token

格式:Authorization: Bearer <bearer token> bearer token 的获取方式:通过 OAuth2 的授权流程

OAuth2流程
  1. 第三方网站向授权方网站申请第三方授权合作,拿到clientid和client secret
  2. 用户在使用第三方网站时,点击「通过XX(如GitHub)授权」按钮,第三方 网站将⻚面跳转到授权方网站,并传入 client id 作为自己的身份标识
  3. 用户点击「同意授权」按钮后,授权方网站将⻚面跳转回第三方网站,并传 入 Authorization code 作为用户认可的凭证。
    1. image-20220106221942528
  4. 第三方网站将Authorizationcode发送回自己的服务器
    1. image-20220106222105490
  5. 服务器将Authorizationcode和自己的clientsecret一并发送给授权方的 服务器,授权方服务器在验证通过后,返回 access token。OAuth 流程结束
    1. image-20220106222236704
  6. 在上面的过程结束之后,第三方网站的服务器(或者有时客户端也会)就可 以使用 access token 作为用户授权的令牌,向授权方网站发送请求来获取 用户信息或操作用户账户。但这已经在 OAuth 流程之外。
    1. image-20220106222409773
微信登录
  1. 第三方App向腾讯申请第三方授权合作,拿到clientid和clientsecret
  2. 用户在使用第三方App时,点击「通过微信登录」,第三方App将使用微 信 SDK 跳转到微信,并传入自己的 client id 作为自己的身份标识
  3. 微信通过和服务器交互,拿到第三方App的信息,并显示在界面中,然后 询问用户是否同意授权该 App 使用微信来登录
  4. 用户点击「使用微信登录」后,微信和服务器交互将授权信息提交,然后跳 转回第三方 App,并传入 Authorization code 作为用户认可的凭证
  5. 第三方App调用自己服务器的「微信登录」Api,并传入Authorization code,然后等待服务器的响应
  6. 服务器在收到登录请求后,拿收到的Authorizationcode去向微信的第三 方授权接口发送请求,将 Authorization code 和自己的 client secret 一起 作为参数发送,微信在验证通过后,返回 access token
  7. 服务器在收到accesstoken后,立即拿着accesstoken去向微信的用户信 息接口发送请求,微信验证通过后,返回用户信息
  8. 服务器在收到用户信息后,在自己的数据库中为用户创建一个账户,并使用 从微信服务器拿来的用户信息填入自己的数据库,以及将用户的 ID 和用户 的微信 ID 做关联
  9. 用户创建完成后,服务器向客户端的请求发送响应,传送回刚创建好的用户 信息
  10. 客户端收到服务器响应,用户登录成功

Refresh token

安全。当 access token 失窃,由于它有失效时间,因此坏人只有较短的 时间来「做坏事」;同时,由于(在标准的 OAuth2 流程中)refresh token 永远只存在与第三方服务的服务器中,因此 refresh token 几乎没有失窃的⻛险