You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

开发Chrome扩展时添加externally_connectable后被禁用,求排查与恢复方法

嘿,我来帮你拆解这个问题——你遇到的情况其实是Chrome扩展安全政策在起作用,咱们一步步理清楚:

为什么扩展会被禁用?

你添加的"externally_connectable": { "ids": ["*"] }配置违反了Chrome Web Store的扩展政策。用通配符*允许所有扩展和你的扩展建立通信连接,属于严重的安全隐患:任何恶意扩展都能向你的扩展发送消息,甚至借你的扩展权限执行操作,这被判定为权限滥用,所以Chrome会直接禁用你的扩展,这类政策违规通常是后台自动检测触发的,可能不会给出明确警告。

如何重新启用你的扩展?
  • 先修正manifest.json配置
    把通配符*替换成具体的信任扩展ID列表,只允许你认可的扩展和你的扩展通信。比如:

    "externally_connectable": {
      "ids": ["abcdefghijklmnopqrstuvwxyzabcdef", "1234567890abcdefghijklmnopqrstuv"]
    }
    

    另外提一句:如果你的需求只是让自己的内容脚本和后台脚本通信,其实完全不需要externally_connectable配置——内容脚本和后台本来就可以通过chrome.runtime.sendMessage直接通信,没必要开放外部连接权限。

  • 重新加载扩展
    打开Chrome的扩展管理页面(输入chrome://extensions/),开启开发者模式,要么点击「加载已解压的扩展程序」选择你的扩展目录,要么点击扩展卡片上的「重新加载」按钮。只要配置修改合规,扩展就能正常启用了。

补充:如果是要和网页脚本通信怎么办?

如果你的真实需求是让网页中的原生脚本(不是你注入的内容脚本)和扩展通信,那正确的做法是用"matches"字段指定允许通信的域名,而不是开放所有扩展ID。比如:

"externally_connectable": {
  "matches": ["https://your-trusted-site.com/*"]
}

这样只有指定域名下的网页脚本才能向你的扩展发消息,既满足需求又符合安全政策。

内容的提问来源于stack exchange,提问作者Dal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:52:49