沙箱化iframe为何能访问YouTube登录用户的个人信息?
问题原因及解决思路
为什么沙箱化iframe能获取你的个人信息?
核心原因是沙箱iframe不会阻止浏览器自动发送对应域名的Cookie:
- 当你在主页面登录YouTube后,浏览器会存储YouTube的身份认证Cookie。
- 即使iframe开启了沙箱,只要它加载的是YouTube域名的页面,浏览器就会根据Cookie的域名匹配规则,自动把对应的登录Cookie发送给YouTube服务器。
- YouTube服务器收到Cookie后,会返回包含你个人信息的个性化页面——沙箱属性的作用是限制iframe内页面的脚本权限、弹窗权限等,并不负责隔离浏览器存储的Cookie。
怎么获取YouTube未登录状态的推荐内容?
要拿到无个性化的推荐,你需要让请求YouTube的过程不携带登录Cookie,可行的方案有:
- 用浏览器的隐私/无痕模式打开你的项目,这种模式下不会加载本地保存的登录Cookie
- 手动清除浏览器中YouTube相关的Cookie后再测试
- 改用服务端代理方式:让你的后端服务器去请求YouTube未登录状态的页面,再把内容返回给前端,彻底绕过浏览器的Cookie存储
内容的提问来源于stack exchange,提问作者djfm
相关产品推荐
相关产品推荐

