You need to enable JavaScript to run this app. 浏览器扩展追踪拦截文件上传实现及跨浏览器兼容方案咨询
优惠活动
大模型
产品
解决方案
定价
更多

浏览器扩展追踪拦截文件上传实现及跨浏览器兼容方案咨询

解答

1. 浏览器扩展方案可行性与参考实现

你的需求完全可以通过浏览器扩展实现,核心实现逻辑如下:

  • 事件捕获层:通过内容脚本(content script)监听页面内<input type="file">的change事件、拖拽上传的drop事件,提前拿到用户选择的文件对象;同时搭配扩展的webRequest API拦截所有携带二进制内容的上传请求,做双层兜底。
  • 信息采集层:通过浏览器原生File API直接读取文件名、大小、格式三类基础元数据;对txt、doc、docx等可读格式文件,用FileReader接口读取文件流后,搭配对应格式的解析库提取文本内容即可。
  • 拦截执行层:匹配到黑名单关键词后,延迟操作可以通过hold住webRequest的请求回调直到指定时长结束再放行;阻断操作可以直接在webRequest层返回取消请求的指令,也可以在内容脚本层拦截表单提交/上传触发事件,从页面侧直接阻断上传动作。

现有成熟的企业级浏览器端DLP(数据防泄漏)产品基本都是这套实现逻辑,开源方向可以参考广告拦截类扩展的请求拦截逻辑、文件上传校验类扩展的文件处理逻辑做二次开发。

2. 跨浏览器兼容情况

  • Chromium内核浏览器(Chrome、Edge)对上述用到的所有API支持度完全一致,代码适配成本极低,95%以上的代码可以直接复用。
  • Firefox对webRequest API、内容脚本权限的声明规则、回调参数存在少量差异,做针对性兼容调整后也可以正常运行,不存在仅能在Chrome使用的问题。

3. Go语言实现的非扩展替代方案

最成熟的方案是本地流量代理方案:
用Go开发本地HTTP/HTTPS代理服务,配置浏览器/系统全局流量走该代理,在代理层解析所有上传请求的流量,提取上传的文件元数据和内容,匹配黑名单后执行延迟转发或者直接丢弃请求的操作。HTTPS流量可以通过在本地安装自签根证书的方式做中间人解析,该方案不需要安装任何浏览器扩展,适配所有主流浏览器,对用户侧的使用感知也更低。
另一种可选方案是用Go的文件系统监控库监听用户常用的文件存储目录,当检测到浏览器进程读取符合敏感规则的文件时直接拦截读取动作,不过该方案需要较高的系统权限,误拦截概率也更高。


内容的提问来源于stack exchange,提问作者Tank The Tears

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.20 21:24:03