1

私の友人の 1 人は、Chrome ブラウザのタブが、中国最大のショッピング サイトである「tamll.com」に変わることがあると言いました。

最初は、マルウェアが原因である可能性があると思います。しかし、彼はクリーンな OS を持っており、コンピューター内のすべてをチェックしました。

次に、この javascriptを見つけました。コードは常にこの質問の一番下にあります。そして、このスクリプトは「bbs.gfan.com」に含まれています。

このスクリプトは window.opener.location を使用して、別のブラウザー タブの Web ページを変更します。google.com から "bbs.gfan.com" のページを開くと (たとえば、Google で "bbs.gfan.com" を検索して最初の回答をクリックする)、このスクリプトは window.opener が null でないかどうかをチェックし、 window.opener.location を _5had0w.mall に設定します。すると、window.opener タブが新しい​​アドレスにジャンプします。

window.opener.location を変更しようとするスクリプトをブロックする方法はありますか? または、window.opener.location を直接無効にする方法はありますか?

通常の Web ページではこの変数は変更されず、このような広告スクリプトでのみ使用されると思います。

この種の広告スクリプトは気分が悪くなりました。広告のウェブページを開くだけでなく、別のウェブページも消えてしまいます...

if ("undefined" == typeof (_5had0w)) {
  _5had0w = [];
  _5had0w.ssite = new RegExp("(www.baidu.com)|(www.google.c)|(www.youdao.com)|(search.cn.yahoo.com)|(search.yahoo.com)|(114search.118114.cn)|(bing.118114.cn)|(search.114.vnet.cn)|(bing.com)|(www.soso.com)|(www.sogou.com)|(www.taobao.com)|(gougou.com)|(www.gouwo.com)|(cache.baidu.com)|(m.baidu.com)|(baidu.asp)|(hao123.com)|(265.com)|(114la.com)|(115.com)|(etao.com)", "i");
  _5had0w.win = window;
  try {
    if (parent && parent.f && parent.document.getElementById("fulliframe")) {
      _5had0w.win = parent
    }
  } catch (e) {}
  _5had0w.getcookie = function (sName) {
    var aCookie = document.cookie.split("; ");
    for (var i = 0; i < aCookie.length; i++) {
      var aCrumb = aCookie[i].split("=");
      if (sName == aCrumb[0]) return unescape(aCrumb[1])
    }
    return ""
  };
  _5had0w.setcookie = function (sValue) {
    date = new Date();
    date.setMinutes(date.getMinutes() + 100);
    document.cookie = "oc_busy=" + escape(sValue) + "; expires=" + date.toGMTString() + ";path=/"
  };
  _5had0w.mall = "http://gomallg.blogbus.com/?76";
  _5had0w.np = false;
  _5had0w.nvIt = function (lochref) {
    try {
      _5had0w.win.opener.location = lochref
    } catch (e) {
      try {
        _5had0w.win.opener.navigate(lochref)
      } catch (e2) {
        try {
          _5had0w.win.opener.opener.navigate(lochref)
        } catch (e3) {
          _5had0w.np = true
        }
      }
    }
  };
  _5had0w.nvUrl = function () {
    var _co = _5had0w.getcookie("oc_busy");
    if (_co == "" || _co.indexOf("mall") < 0) {
      _5had0w.nvIt(_5had0w.mall);
      if (!_5had0w.np) {
        _5had0w.setcookie(_co + "_mall")
      }
    }
  };
  _5had0w.oload = function () {
    if (_5had0w.win.opener && "" == _5had0w.getcookie('rf6_auth')) {
      if (_5had0w.ssite.test(_5had0w.win.document.referrer)) {
        _5had0w.nvUrl()
      }
    }
  };
  try {
    if (document.attachEvent) {
      window.attachEvent("onload", _5had0w.oload)
    } else {
      window.addEventListener("load", _5had0w.oload, false)
    }
  } catch (e) {}
}
4

1 に答える 1

0

この Web アプリケーションは、Google や他の Web サイトが gfan.com から開かれているという事実を利用しています。したがって、gfan.com Web アプリケーションは、新しいウィンドウを開いたので、それらをある程度制御できます。

アプリケーションの下部にあるスクリプトが問題の原因であると思われる場合は、拡張機能としてインストール可能な Chrome および Firefox 用に入手できるいくつかのアドブロッカーのいずれかを試すことができます。

それがうまくいかない場合は、ホスト ファイルを編集して、リモート スクリプトのドメインを 127.0.0.1 に指定し、DNS をローカルで上書きすることを試みることができます。これは、それがリモート スクリプトであり、gfan.com 自体から提供されていないことを前提としています。そうしないと、gfan.com にもアクセスできません。

Chrome Adblockは、試すことができる広告ブロッカーです。

于 2012-04-06T06:18:49.477 に答える