在GM脚本中调用`unsafeWindow`的方法是否具有特权是一种易受攻击的做法?

时间:2013-08-13 19:27:30

标签: javascript security greasemonkey

我有一个类似

的脚本
// ==UserScript==
// @grant       GM_getValue
// @grant       GM_setValue
// @include     *
// @run-at      document-start
// ==/UserScript==

var foo = GM_getValue('foo');
var _open = unsafeWindow.open;
unsafeWindow.open = function(){
   if( /* Something */ ){
      _open();
   }
   setTimeout(function() {
        GM_setValue('bar', 'bar');
    }, 0);
}

可能是恶意网站

  • 在我执行window.open
  • 时,向var _open = unsafeWindow.open添加一个getter以执行恶意代码
  • 在我执行window.open
  • 时,向unsafeWindow.open = /*...*/添加一个setter以执行恶意代码
  • window.open替换为恶意函数,我将在使用_open()时执行

恶意网站是否会获得使用GM_getValueGM_setValue或我脚本中定义的变量(如foo)的权限?

0 个答案:

没有答案