部分网站可未经用户许可录制屏幕是如何实现的?
Inspectlet类网页录屏效果实现原理解析
首先需要澄清:这类工具并没有真正调用系统/浏览器的原生屏幕录制API,不存在“未经许可录屏”的行为,你看到的“录屏效果”实际是前端会话重放技术的呈现结果。
核心实现逻辑分为三个部分:
- 全量DOM快照采集
网站嵌入的对应SDK会在页面加载时,先捕获当前页面完整的DOM树结构、所有CSS样式规则、资源加载状态,生成页面的初始状态快照,这属于前端JS的正常权限范围,不需要任何用户授权。 - 实时增量变更与用户行为捕获
SDK会持续监听两类核心数据:- DOM的所有增量变化:包括元素增删、样式修改、属性更新、输入框内容变化等,所有变更都会按时间戳记录为结构化数据
- 全量用户交互事件:包括鼠标移动/点击/hover、页面滚动、键盘输入、窗口缩放、表单操作等所有用户在页面内的行为,每个事件都会标记精确的触发时间、坐标、数值等参数
- 后台重放还原
采集到的所有结构化数据会被压缩后异步上传到服务端,后台回放时会按照时间序列重新还原DOM状态和用户操作路径,最终呈现出和真实录屏几乎完全一致的效果,本质是“复现页面状态+模拟用户操作”,不是预先录制的视频文件。
补充说明
浏览器的原生屏幕录制API是getDisplayMedia,调用时强制弹出用户授权提示,而上述会话重放技术完全基于前端JS对当前页面DOM和事件的监听,属于网页脚本的默认允许权限,不需要额外申请授权。正规的同类工具默认会对type=password等敏感输入框做内容屏蔽,避免采集用户密码等隐私信息,但如果网站自行调整采集规则,也存在泄露用户输入的敏感信息的可能。
内容的提问来源于stack exchange,提问作者Darshan
相关产品推荐
相关产品推荐

