Chrome扩展程序上window.postMessage的安全性

问题描述 投票:0回答:1

[官方文档建议使用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在内容脚本和本地页面脚本之间进行通信是一种好习惯吗?如果是的话,什么是安全的方法?

security google-chrome-extension postmessage
1个回答
0
投票
我知道这个问题很古老,但是如果有人读过这个,我很好奇是否有可能将某种秘密存储为变量,并将其存储在闭包内部,从而使其无法被外部函数读取,但被脚本使用验证并来回签名消息?

基本上1)扩展可以派生2个随机密钥并存储它们2)然后可以设置一个脚本标签,该标签具有一个封闭的变量来保存此变量,该变量将具有3种方法a)reset_variable b)validate_message c)sign_message。重置将是一次使用-如果更改一次,则删除方法或冻结变量(或同时冻结两个变量)。然后,该扩展程序将立即使用第二个键使用重置功能。然后,可以使用此新密钥来验证传入消息并签署传出消息。只要页面处于活动状态并且内存没有丢失,它就应该是一个安全的存储,对吗?如果重新加载页面或内存丢失,则该功能可能会被覆盖。

© www.soinside.com 2019 - 2024. All rights reserved.