作者回复:
攻击者A并不是一个第三方开发者,他也是极客时间的一个合法用户,我们这里是有【三方软件A】是想说明这个攻击者“有能力”构建了一个软件页面。
并不存在appidA,appid 一直是极客时间的appid,图中app_id_b也是极客时间的appid,这里用了“b”,只是想区分这两次“请求”。
因为CSRF比较知名,咱们在文中并没有过多对它做基础性解释。在理解这篇文章CSRF攻击的例子时候,可以想象一个成语“移花接木”。
作者回复: 回调地址是一个固定的值,state在每次OAuth事务中是不一样的值,随机生成的值。
作者回复: 是一种形象的比喻,实际上是指攻击者截获了授权码这个行为。
作者回复: 原图有一处描述不当,会引起大家理解偏差,现已修正。
1、不需要知道URL;2、不需要嵌入极客时间平台,你可以理解为钓鱼页面,有个重要的前提是被攻击者已经在极客时间平台登录了,有登录态了;3、攻击者A并不是一个第三方开发者,他也是极客时间的一个合法用户,我们这里是有三方软件A是想说明这个攻击者构建了一个软件页面。
作者回复: 动态注册的初衷解决的是有多个【外部】的API提供商的时候,不用客户端去分别多次到这样的提供商来进行事先注册,不然没对接一个就要注册一次。如果API提供方都是自己公司的其实把硬件设备和后台服务作为一个更合适,通设备号来区别每一个这样的硬件设备。
作者回复: 是的,我们讲的用户身份认证是指的最终用户的身份,也就是用户G或者小明。OAuth2.0首先呢确实并不能称为一个身份认证协议,它是一个授权协议,利用appid和app_secret只是验证了第三方软件的合法性,合法之后获取访问令牌以便代表小明去访问数据,代表的前提是小明对其进行了授权。
在09我们会讲到在OAuth 2.0 的基础上,我们增加ID_TOKEN可以实现用户身份认证。