登录、授权

Cookie不是专门登录用的,但是Authorization就是为登录设计的。
    1. Cookie:
        a. 作用:一、会话管理:购物、登录状态sessionid。二、个性化:管理用户偏好client_id。三、Tracking:追踪用户行为(外链from)。
            i. 购物例子:
            第一步:
苹果加购物车    
                
            第二步:
香蕉加购物车    
                
            第三步:
下单    
                无body
            ii. 登录例子(Cookie用于登录的情况越来越少):
            从服务端获得sessionid,
存在Cookie里。
sessionid用于确认客户端没变,
不能让别人异地操作。    
                
                
                
            iii. 统计用户行为:第三方统计,shop.com用js代码自动请求第三方统计平台,第三方给每一个客户端一个client_id。
            
            
        b. 缺陷和应对措施:
            i. XSS:XSS (Cross-sitescripting) (了解即可):跨站脚本攻击。即使用JavaScript拿到浏览器的Cookie之后,发送到自己的网站,以这种方式来盗取用户Cookie。
                1) 应对方式:Server在发送Cookie时,敏感的Cookie加上HttpOnly。HttpOnly一这个Cookie只能用于HTTP请求,不能被JavaScript调用。它可以防止本地代码滥用Cookie。
                set-cookie:session_id=1223;HttpOnly
            ii. XSRF:XSRF (Cross-site request forgery)(了解即可):跨站请求伪造。即在用户不知情的情况下访问已经保存了Cookie的网站,以此来越权操作用户账户(例如盗取用户资金) 。
                1) 应对方式:浏览器强制加Referer校验,来自哪里。
                referer:bad_person.com
    2. Authorization:basic是自己计算出来的,bearer是找服务器要的。
        a. Basic:格式:
        Authorization: Basic <username:password(Base64ed)>
        b. Bearer(拿着的人;持票人):
            i. OAuth2:第三方登录:用github登录掘金。登录的第二方是授权的第三方。流程:
                0.第三方网站(掘金)向授权方网站申请第三方授权合作,拿到client id和client secret
                1.用户在使用第三方网站时,点击「通过XX(如GitHub)授权」按钮,第三方网站将页面跳转到授权方网站,并传入client id作为自己的身份标识
                2、授权方网站根据clientid,将第三方网站的信息和第三方网站需要的用户权限展示给用户,并询问用户是否同意授权
                3.用户点击「同意授权」按钮后,授权方网站将页面跳转回第三方网站,并传入Authorization code作为用户认可的凭证。
                4、第三方网站将Authorization code发送回自己的服务器
                5.服务器将Authorization code和自己的clientsecret一并发送给授权方的服务器,授权方服务器在验证通过后,返回access token。OAuth流程结束。
                6.在上面的过程结束之后,第三方网站的服务器(或者有时客户端也会)就可以使用access token作为用户授权的令牌,向授权方网站发送请求来获取用户信息或操作用户账户。但这已经在OAuth流程之外。
                
                    
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值