那个“帮你自动填表”的脚本:油猴类用户脚本为什么能改写你看到的钱包弹窗 图 1
那个“帮你自动填表”的脚本:油猴类用户脚本为什么能改写你看到的钱包弹窗 · 图 1

浏览器扩展商店和用户脚本站里有一类看起来人畜无害的“效率工具”:自动填表、网页折叠、批量展开、比价高亮。对加密用户来说,其中风险密度最高的一族是用户脚本(常配合 Tampermonkey、Violentmonkey 这类管理器运行)——因为它拿到的权限,恰好覆盖你与 Web3 世界打交道的那块屏幕。本文讲清它的权限模型、最坏剧本,以及一份减法清单。不构成投资建议。

先摆机制。用户脚本是注入到网页里运行的小段代码,靠内容脚本权限在页面加载后读写页面上的任何元素:改样式、填表单、把一段文字替换成另一段。合法用途是提升效率;恶意用途则有一个加密场景的定制版本——地址替换脚本。它的写法朴素到令人不适:监听页面上的收款地址节点,把你准备复制的那串字符换成攻击者的地址;更进阶的会在钱包弹窗的确认界面渲染前,把展示的收款方名字和数额改成“正常样子”,而真实请求早已指向别处。你和页面对了两遍眼,唯独没对的那一遍,是页面本身已经被换过了。

它和扩展投毒的区别值得说清。恶意扩展往往要申请广泛的权限清单,安装时就有醒目的授权弹窗,商店也有审核流程;用户脚本的门槛低得多:粘贴一段代码就装好,不需要“批准访问此网站”的系统弹窗——因为脚本管理器这个宿主扩展已经提前替你批准过“在所有网站运行代码”。于是供应链变成两层:脚本管理器本身要可信,脚本内容更要可信。而脚本的更新机制让第二层更难防:一个最初无害的脚本,作者可以在一次“自动更新”里加入恶意逻辑,你之前用过它三个月的好口碑,保护的只是过去的版本。灰产还有一套成熟打法:把脚本伪装成“提效神器”在教程视频、社群和搜索引擎里分发,标题里常见“自动”“脚本”“助手”这类词。

自查清单按危险度排序。第一删:任何会在钱包、交易所、转账页面运行的脚本——包括所谓“自动领取”“批量交互”“空投检测”,它们要做的每一步你其实都能在官方界面手动完成。第二删:来源不明、代码不可读、却在“所有网站”上运行的脚本;愿意留下的一律展开源码读一遍,读不懂的脚本对钱包页面就是不可接受的信任额度。第三改设置:脚本管理器关掉自动更新,改为手动更新加逐次看变更;把运行范围收窄到明确列出的站点,而不是通配全站;给管理类扩展的弹窗设置“每次询问”。第四补一层不依赖浏览器的核对:重要转账前,把收款地址与对方通过另一通道发出的原文逐段比对头尾各八位以上,这一步防的正是“屏幕上的一切都可以被改写”。

最后两条边界。其一,脚本不是扩展就更安全——恰恰相反,它免掉了安装时的那道权限确认,属于“低风险外观、高权限实质”的典型;把它当作扩展来审计才公平。其二,别用“我只在不重要的网站用”麻痹自己:内容脚本看得到你的浏览器输入习惯、会话状态和已登录账号,网站重不重要不是它的读取范围决定的。浏览器的哲学是“页面给你看什么你就信什么”,用户脚本把这条哲学的漏洞放大到了极限。对拿着钱包插件干活的浏览器环境,唯一稳妥的姿势是减法:脚本清零、扩展减半、弹窗每次读完再点,省下的那几次点击,换来的是弹窗上那行字仍然值得相信。