定义: 请注意,我将使用第一个答案中提供的“注入脚本”、“扩展代码”和“内容脚本”的定义。question。
假设: 如果我直接在注入脚本(在 web 区域)中处理机密信息,那么处理机密信息就不太安全,而如果我在内容脚本和扩展代码的 chrome:// 区域内处理,则更加安全。因此,我应该使用消息传递将机密信息从 web 区域发送到 chrome:// 区域进行处理。
问题: 我正在构建一个 Google Chrome 扩展程序,在注入脚本中需要对敏感用户数据执行一些操作。所涉及的数据是机密的,我必须尽一切努力确保除了扩展程序用户之外,任何人都无法看到它,直到我对其进行操作。在可用于在注入脚本和扩展代码/内容脚本之间传递消息的 3 种技术中,哪种最适合此目的?
我对可用于在注入脚本和扩展代码/内容脚本之间传递数据的 3 种不同技术的理解:
对于注入脚本和扩展代码(例如后台页面)之间的消息传递,可以使用chrome.runtime API。
对于注入脚本和内容脚本之间的消息传递,可以使用window.postMessage。
另一种在注入脚本和内容脚本之间传递消息的方法是通过document.dispatchEvent(CustomEvent)。
我理解的是,方法1不能用于注入脚本和内容脚本之间的消息传递,而方法2和3不能用于注入脚本和扩展代码之间的消息传递(除非消息被内容脚本转发到例如后台页面等位置)。
window.postMessage
(假设域名匹配)和document.dispatchEvent
的消息,只要他们知道这些消息将要发生。至少你可以通过传递扩展ID将第一种技术限制为仅广播到特定扩展程序。 - Patrick Roberts