比如登录的时候浏览器开发者工具看到登录成功换取的token,有这个token了,如果别人知道了,不就可以拿着这个token冒充我去做登录后的其他任何操作吗?即使有效期2小时,2小时内不是也能做很多操作吗?这种安全如何保障呢?
比如登录的时候浏览器开发者工具看到登录成功换取的token,有这个token了,如果别人知道了,不就可以拿着这个token冒充我去做登录后的其他任何操作吗?即使有效期2小时,2小时内不是也能做很多操作吗?这种安全如何保障呢?
电脑就相当于密码。你都把密码给别人了,你还想要啥安全。任何网站获取了token都可以直接进行登录。就相当于你用指纹解锁,结果别人都有了的指纹了。
能看到别人浏览器,都不用token,加入你在浏览器存储了密码自动填写,直接打开把密码框的类型改为text
,密码就显示出来了。
一般来说做第三方登录时,与token
配合的还有个scope
参数,它定义了这个拿到的token
可以用来干什么。
比如这是微博的OAuth接口说明
它的scope也有相关说明
其它的提供第三方登录服务接口的网站比如微信,Google,Facebook等等也大同小异。如果网站登录的时候不设置scope
参数,那么它拿到的token
就只能用来读取一些最基本的信息,比如用户id
什么的。如果要实现向你所说的干其它事情就需要额外去申请scope
,然后一般你在跳转到授权页面的时候就会看到网站额外申请的权限,如果你不放心的话,可以把这些权限取消即可。
这个是要算成本的
获取token有成本
token在对应站点怎么使用
有哪些接口可供我调用
要在过期时间内使用
还有最后兜底的 敏感操作要走二次确认
以上成本保证了安全性