登录与授权的区别
- 登录: 身份认证,即确认 [你是你] 的过程
- 授权: 由身份或持有的令牌确认享有某些权限(例如获取用户信息).而登录过程实质目的也是为了确认权限
因此,在实际应用过程中,多数场景下的[登录] 和 [授权] 界限是模糊的
Http 确认授权(或登录)的两种方式
- 通过 Cookie
- 通过 Authorization Header
Cookie
起源: [购物车] 功能的需求,由 Netscape 浏览器开发团队打造
⼯作机制:
- 服务器需要客户端保存的内容,放在 Set-Cookie header里面返回,客户端会自动保存
- 客户端保存的Cookie,会在之后所有的请求里面都携带进 Cookie header里发回给服务器
- 客户端保存的Cookie,会在之后的请求里都携带进Cookie里header发回给服务器
- 客户端里的Cookie超时会被删除,没有设置超时时间的Cookie(称做Session Cookie)在浏览器关闭后,会自动删除;另外服务器也可以删除还未过期的客户端Cookie
Cookie的作用:
- 会话登录
登录状态 ,购物车
- 个性化:
⽤户偏好、主题
- Tracking
分析用户的行为
-
XSS(Cross-site scripting): 跨站脚本攻击.即使用JavaScript拿到浏览器Cookie之后,发送到自己的网站,以这种方式盗取y用户Cookie.对应方式: Server 在发送 Cookie 时,敏感 Cookie 加上 HttpOnly
- 对应方式: HttpOnly -- 这个 Cookie 只能用于 Http 请求,不能被JavaScript 调用.它可以防止本地代码滥用 Cookie
-
XSRF (Cross-site request forgery): 跨站请求伪造.即在用户不知情的情况下访问已经保存了了 Cookie 的网站,以此来越权操作用户账号(例如:盗取用户资金).应对方式主要是从服务器安全角度考虑,就不多说了
- 应对方式: Referer 校验
Authorization
- Basic
格式: Authorization:Basicusername:password(Base64ed)
- Bearer