[官方文档建议使用windows.postMessage在内容脚本和本地页面脚本之间进行通信:https://developer.chrome.com/extensions/content_scripts#host-page-communication
document.getElementById("theButton").addEventListener("click",
function() {
window.postMessage({ type: "FROM_PAGE", text: "Hello from the webpage!" }, "*");
}, false);
但是来自MDN:https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage
它不建议使用“ *”作为目标,并且从某些扩展名接收消息时也不要定义“源”(并且原始文档正在使用源来检测发送的当前窗口是否是当前窗口消息)
我对此有些困惑,使用window.postMessage在内容脚本和本地页面脚本之间进行通信是一种好习惯吗?如果是的话,什么是安全的方法?
基本上1)扩展可以派生2个随机密钥并存储它们2)然后可以设置一个脚本标签,该标签具有一个封闭的变量来保存此变量,该变量将具有3种方法a)reset_variable b)validate_message c)sign_message。重置将是一次使用-如果更改一次,则删除方法或冻结变量(或同时冻结两个变量)。然后,该扩展程序将立即使用第二个键使用重置功能。然后,可以使用此新密钥来验证传入消息并签署传出消息。只要页面处于活动状态并且内存没有丢失,它就应该是一个安全的存储,对吗?如果重新加载页面或内存丢失,则该功能可能会被覆盖。