Security 确定其他扩展提出的请求?

Security 确定其他扩展提出的请求?,security,google-chrome,google-chrome-extension,Security,Google Chrome,Google Chrome Extension,我希望我的分机能够监听其他分机发出的请求。我不控制他们与之交谈的服务器——更重要的是,当他们发出请求时,我只想记录日志,以帮助识别诸如 我已经用这个事件进行了测试,但是我看到获取请求来源信息的唯一方法是通过tabId属性。但是,对于扩展背景页发出的请求,此属性为-1 我已经通过让我自己的扩展每隔5秒发出一个请求进行了测试,然后我可以看到正在触发的事件,但是没有足够的信息来识别来自任何特定扩展的请求 是否有我遗漏的内容或其他方法?扩展无法轻松可靠地识别其他扩展发出的请求,因为扩展可以使用内容脚本

我希望我的分机能够监听其他分机发出的请求。我不控制他们与之交谈的服务器——更重要的是,当他们发出请求时,我只想记录日志,以帮助识别诸如

我已经用这个事件进行了测试,但是我看到获取请求来源信息的唯一方法是通过tabId属性。但是,对于扩展背景页发出的请求,此属性为-1

我已经通过让我自己的扩展每隔5秒发出一个请求进行了测试,然后我可以看到正在触发的事件,但是没有足够的信息来识别来自任何特定扩展的请求


是否有我遗漏的内容或其他方法?

扩展无法轻松可靠地识别其他扩展发出的请求,因为扩展可以使用内容脚本来执行请求,这与插入内容脚本的页面发出的请求无法区分

如果扩展尚未声明访问特定网站的权限,则请求标头将包含
Origin:chrome扩展://[extensionid]/…
请求标头。但是,如果需要,扩展可能会故意欺骗此值。此外,扩展很少在没有正确权限的情况下执行跨源请求,因为只有当服务器接受CORS的跨源请求时,才会接受请求


如果您确实想识别其他扩展发出的请求,那么您可以通过API使用远程调试协议来获得网络请求的通知。远程调试协议记录在中,网络消息的相关部分可在中找到。

Ah,关于内容脚本的要点很好。出于我的目的,尽管我很乐意只捕获后台页面发出的请求,但这会改变您的答案吗?那个远程调试器看起来很有前途,我不知道它的存在。我需要好好读一读!它依赖于用户在使用devtools之前打开它吗?实际上,在阅读它时,我不需要提供一个tabId作为将命令发送到的目标吗?扩展背景页没有选项卡。@user3806049您可以指定扩展ID(请参阅),以便使用
chrome调试其他扩展。调试器
,chrome必须使用
--静默调试器扩展api
标志启动。不,您无法使用WebRequestAPI检测来自另一个扩展的后台页面的请求。好的,谢谢,我将使用该API进行一些测试,尽管我认为需要该标志可能会使其成为非运行程序,以便在扩展中简单使用。谢谢