web worker 不适合敏感词过滤,因其运行在不可信的浏览器环境,词库易被篡改,无法应对变形词、上下文语义及编码混淆,且缺乏服务端数据库、ai模型等关键资源;它仅宜承担非安全关键的前端预处理任务。

不能在 Web Worker 中直接执行敏感字符过滤或合规性检查——这不是它的设计用途,也不符合安全原则。
为什么Worker不适合做敏感词过滤
敏感字符过滤本质是业务逻辑与策略判断,必须依赖可信、可控、可审计的服务端环境。Worker 运行在浏览器中,完全暴露给用户:
- 用户可禁用 JavaScript、绕过 Worker、直接构造请求提交原始内容
- 词库若放在 Worker 脚本里,会被轻易查看、篡改或跳过
- 正则或简单匹配无法应对变形词(如“政zhi”“色#情”)、上下文语义(如“不讲政治”)、编码混淆等绕过手段
- Worker 无法访问服务端数据库、实时更新的词典、AI 分类模型等关键资源
Worker 可以做什么:辅助性预处理
Worker 的合理角色是分担主线程压力,做**非安全关键、不可信但高耗时**的前端辅助任务,例如:
- 对用户输入文本做快速本地预筛(如剔除明显 HTML 标签、检测 base64 编码片段、统计特殊符号密度)
- 用正则粗略标出疑似敏感片段(仅用于 UI 提示,如高亮+禁用提交按钮),不用于决策
- 将大段文本分块、归一化(统一全角/半角、去多余空格、转小写),再交由 fetch 发送给后端
- 配合 FileReader 异步读取上传的 HTML 文件内容,避免阻塞页面
真正合规的检查流程必须后端落地
所有涉及内容安全、合规性、法律风险的判断,必须由服务端完成,并满足以下要求:
- 使用基于词典(Trie 树)或 NLP 模型的匹配引擎,支持模糊、变形、上下文识别
- 词库动态加载、加密存储、权限管控,不硬编码在前端
- 记录原始输入、匹配结果、操作人、时间戳,满足审计要求
- 结合 CSP、HTML 白名单净化、XSS 上下文编码等多层防护,不依赖单一环节
- 对 HTML 类内容,需先解析 DOM、剥离 script/event/iframe、校验 src/href 协议,再进行文本分析
一个可行的前后端协作示意
前端(含 Worker)只做两件事:减轻卡顿 + 提供即时反馈;后端承担全部责任:
- 用户输入时,Worker 启动轻量扫描,返回“发现疑似 HTML 片段”或“含高频符号组合”,UI 显示黄色提示
- 点击提交时,主线程收集原始内容、用户身份、设备指纹等元数据,通过 HTTPS 加密发往后端 API
- 后端收到后,先做 HTML 结构校验(DOCTYPE、标签闭合)、再执行白名单过滤、最后调用敏感词引擎打标
- 响应中明确返回 action(allow / reject / review),前端仅据此控制 UI,不修改原始数据
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











