作者danny0838 (道可道非常道)
看板Browsers
标题Re: [-GC-] 有人在关切 manifest V3 吗
时间Fri Jan 22 17:15:40 2021
※ 引述《ettoolong (ettoolong)》之铭言:
: ※ 引述《danny0838 (道可道非常道)》之铭言:
: : 4. 禁止 chrome.tabs.executeScript 用「code」执行程式码文字
: 不确定有没有影响, 脚本类的套件可以先把自己的脚本用 content script 注入,
: 然後把原本要用 chrome.tabs.executeScript 执行的 code 用 message
: 送给自己已经在 tab 执行的 content script, 让该 script 用 eval 的方式执行.
: 但是 AMO 早就禁止使用 eval, 但是不确定 chrome web store 有没有挡 eval,
: 有挡的话就应该死了, 因为直接不允许你用动态的方式生成 script.
测试了一下,V3 还有一个改变,我补充在原PO了:
* content script 禁止执行 eval 类函数(Manifest V2 可以)
而经测试,content script 在 DOM 插入 script 元素时,
script 是视为在 content script 执行(而不是视为 page script)
所以想在 content script 执行类似以下脚本的方式也是不通:
var s = document.createElement('script');
s.innerText = "alert('test');";
document.body.appendChild(s);
s.remove();
目前发现这样写可以绕过:
var s = document.createElement('span');
s.setAttribute('onclick', 'alert("arbitrary code");');
document.body.appendChild(s);
s.click();
s.remove();
但不晓得未来会不会也被封死就是...
但就算这样可以,
要让 page script 和 extention script 沟通是很困难的,
因为不像 content script 可以用 chrome.runtime.sendMessage(...)。
--
《终结内容农场》浏览器套件
Chrome:
http://bit.ly/CFTGC
Firefox:
http://bit.ly/CFTFx (桌机 & Android 手机)
真相1:
http://bit.ly/CFTss1
真相2:
http://bit.ly/CFTss2
详细介绍:
http://bit.ly/CFTinfo
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.164.16.43 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Browsers/M.1611306945.A.25E.html
※ 编辑: danny0838 (1.164.16.43 台湾), 01/22/2021 17:23:23