网站所有者能否查看用户在浏览器控制台中运行的注入脚本?
你给出的自动点击脚本如下:
setInterval(function() { document.getElementsByClassName("buttonclass")[0].click(); }, 5000);
问题结论
你粘贴到浏览器控制台运行的这段自动点击脚本,网站所有者无法直接看到你在控制台输入的具体代码内容,但完全可以检测到该脚本运行产生的异常行为,也可以通过技术手段感知到有外部注入脚本在页面中执行。
常见的监控实现方式
- 行为特征比对
你这段脚本是固定5秒间隔触发点击,没有正常用户点击附带的鼠标移动、悬停、点击坐标随机偏移等特征,后端的反作弊系统只需要统计点击的时间间隔、请求的关联行为,和正常用户的行为数据做对比,很容易就能标记出这是非人工操作。 - 原生API埋点监听
网站可以提前对setInterval、HTMLElement.prototype.click、document.getElementsByClassName这类原生API做重写封装,在内部增加调用日志和来源校验逻辑,一旦这类API的调用来源不属于网站自身的合法脚本范围,就会自动上报异常事件到后台。 - 异常捕获溯源
如果你的注入脚本运行过程中出现报错(比如目标按钮不存在导致数组索引越界报错),网站通过window.onerror或者全局的error事件监听器可以捕获到完整的错误堆栈,从堆栈的来源标识就能判断出有非官方的外部脚本在执行。 - 控制台运行特征检测
主流浏览器中,控制台注入运行的代码会在调用栈中留下特殊的标识,部分网站会针对性检测调用栈的来源属性,同时也会监控控制台的开启状态,一旦检测到控制台开启且有未知代码执行,就会触发告警。 - 页面状态监听
如果你的脚本修改了页面DOM、本地存储(LocalStorage/SessionStorage)、Cookie等内容,网站可以通过MutationObserver监听DOM变化、监听storage变更事件,快速感知到非官方的页面内容改动。
内容的提问来源于stack exchange,提问作者John
相关产品推荐
相关产品推荐

