求解析未授权获取Spotify用户名的网站技术原理
这种无需授权就能获取你Spotify用户名的情况,核心是利用了浏览器中已保存的Spotify登录状态,常见实现方式有以下几种:
跨域请求携带认证Cookie:
当你在浏览器登录网页版Spotify后,浏览器会保存Spotify的认证Cookie。如果第三方网站构造请求指向Spotify某个未做严格跨域校验的用户信息接口,浏览器会自动携带该Cookie。若接口在携带有效Cookie时直接返回包含用户名的基础用户数据,且Spotify对该接口的SameSiteCookie属性设置存在疏漏(比如设为None且在HTTPS环境下),第三方网站就能拿到你的用户名。嵌入iframe结合
postMessage传递数据:
第三方网站可以嵌入Spotify的公开页面(比如用户个人主页)到iframe中。如果Spotify的页面存在跨域通信限制的配置失误,iframe内的脚本可能会通过postMessage事件向父页面(第三方网站)发送包含用户名的信息,第三方网站监听该事件就能获取数据。利用XSS漏洞读取存储令牌(概率较低):
如果Spotify的网页存在XSS漏洞,第三方网站可能通过注入脚本读取Spotify存在localStorage或sessionStorage中的认证令牌,再调用Spotify API获取用户名。这种情况属于Spotify的安全问题,出现概率较低。
你改用独立浏览器配置文件后,相当于隔离了原浏览器的Cookie和存储数据,第三方网站无法获取到你的Spotify登录状态,自然也就无法获取用户名。
内容的提问来源于stack exchange,提问作者user9564371

