第五部分 — 内容脚本与页面交互 DOM 访问模式与安全桥接

12.1 目的

有些页面操作无法直接在内容脚本中完成:

  • 调用页面 JS 函数

  • 与页面拥有的变量进行交互

本节展示了一个安全的"桥梁"模式。

12.2 使用场景 / 避免场景

使用场景: 当你需要在页面世界运行代码时。

避免场景: 仅需一个隔离世界的 DOM 变更即可。 如果可以从服务工作者 orchestrating,这是在页面的 JavaScript 环境中运行代码最可靠的方式。

sw.js:

javascript 复制代码
async function runInPageWorld(tabId) {
  const [{ result }] = await chrome.scripting.executeScript({
    target: { tabId },
    world: "MAIN", // page world (page CSP applies)
    func: () => {
      // Runs in the page's JS environment.
      return { href: location.href, title: document.title };
    },
  });
  return result;
}
复制代码

注释:

  • 需要 scripting 权限加上主机访问权限(host_permissions 或 activeTab)。

  • 主程序世界代码未被隔离;请保持其简洁,并且切勿暴露机密信息。

12.4 回退方案:postMessage 桥接(内容脚本 ↔ 页面)

这种模式简单易行,但同时也较为脆弱: 向页面世界注入 <script> 标签可能会被页面的 CSP 阻止。

content.js: CODE_BLOCK_56

最小示例

一个最小的 MV3 安全异步消息处理器(适合作为模板使用): CODE_BLOCK_57

12.5 常见问题

  • postMessage 操作务必谨慎(始终验证 type + 形状)。

  • 向页面泄露机密信息(切勿在页面中暴露扩展程序的机密信息)。

  • MAIN 世界并非隔离;页面代码可能会互相干扰(请尽量保持简洁)。

12.6 检查清单

  • 使用严格的消息类型

  • 切勿向页面暴露扩展程序的秘密

  • 在可能的情况下,优先使用独立世界的 DOM 操作

12.7 参考资料

相关推荐
德迅云安全-上官40 分钟前
DDoS 安全防护在企业安全防护中的作用
安全·ddos
王维同学6 小时前
[自学][Windows C++]RunOnceEx 注册表分组键的安全遍历
c++·windows·安全·开源
川石课堂软件测试8 小时前
安全测试|常见SQL注入攻击方式、实例及预防
服务器·数据库·sql·功能测试·测试工具·安全·单元测试
上海云盾-小余8 小时前
中小站点防护避坑:低价高防服务存在的各类安全短板剖析
网络·爬虫·安全·ddos
人生百态,人生如梦8 小时前
情感交互仿生人从技术到落地构想3——技术交流贴(2026.7)
人工智能·机器学习·人机交互·交互·具身智能
武子康9 小时前
从恶意 Dataset 到横向移动:一套可落地的 Dataset Processing Threat Model(资产边界 + 威胁枚举 + 5 层控制)
人工智能·安全
羽翼安全10 小时前
企业内网终端可视化风控方案解析,电脑屏幕防泄露系统保障数据资产安全
安全
数据知道11 小时前
邮件安全实战:SPF/DKIM/DMARC 配置与钓鱼绕过
网络·安全·web安全·网络安全·邮件安全
qizayaoshuap11 小时前
# [特殊字符] 密码生成器 — 鸿蒙ArkTS安全算法与密码强度评估系统
java·算法·安全·华为·harmonyos
是Yu欸13 小时前
AI跨模态鉴伪技术实测
人工智能·安全·ai作画·aigc·合合信息·ai-native·waic