chrome.runtime.sendMessage能否被网站捕获?扩展开发者技术疑问
Chrome扩展
chrome.runtime.sendMessage通信的安全性问题 网站运营方无法直接捕获chrome.runtime.sendMessage的通信内容
Chrome的扩展系统和网页脚本是严格隔离的:网页环境根本没有权限访问chrome.runtime相关API,自然没法监听、捕获这类扩展内部的通信。这类通信完全在浏览器的扩展沙箱环境内进行,只在扩展的背景页、内容脚本、其他扩展组件之间传递,浏览器不会把通信内容暴露给网页脚本。
那些声称能捕获的说法,大概率是混淆了以下两种特殊情况:
- 扩展自身存在漏洞:比如内容脚本错误地把本应在扩展内部传递的敏感数据,通过DOM操作(比如写入网页可访问的元素)或者全局变量泄漏给了网页脚本,这不是网站捕获了
sendMessage的通信,而是扩展自己把数据送出去了。 - 扩展权限配置不当:比如请求了不必要的
<all_urls>权限,但即便如此,网页脚本依然无法直接介入chrome.runtime.sendMessage的通信链路,只是扩展的攻击面变大了而已。
如果要保障扩展通信的安全,核心要做的是:
- 遵循权限最小化原则,只请求扩展必需的权限
- 内容脚本避免向网页环境泄漏扩展内部数据,不要用全局变量传递敏感信息,尽量用隔离的通信方式
内容的提问来源于stack exchange,提问作者Ali Mammadov
相关产品推荐
相关产品推荐

