javascript - 搜狗浏览器到底在做什么?这是流氓行为吗?
PHP中文网
PHP中文网 2017-04-10 12:48:27
0
7
1131

公司负责维护的一位同事发现的,我们的页面很多地方都被注入了JS代码,这段代码展开了如下

    (function (sogouExplorer) {
    sogouExplorer.extension.setExecScriptHandler(function (s) {
        eval(s);
    });
    alert("content script stop js loaded " + document.location);
    if (typeof comSogouWwwStop == "undefined") {
        var SERVER = "http://ht.www.sogou.com/websearch/features/yun1.jsp?pid=sogou-brse-596dedf4498e258e&";
        window.comSogouWwwStop = true;
        setTimeout(function () {
            if (!document.location || document.location.toString().indexOf(SERVER) != 0) {
                return;
            }

            function bind(elem, evt, func) {
                if (elem) {
                    return elem.addEventListener ? elem.addEventListener(evt, func, false) : elem.attachEvent("on" + evt, func);
                }
            }

            function storeHint() {
                var hint = new Array();
                var i = 0;
                var a = document.getElementById("hint_" + i);
                var b = document.getElementById("hint_text_" + i);
                var storeClick = function () {
                    sogouExplorer.extension.sendRequest({
                        cmd: "click"
                    });
                }
                while (a && b) {
                    bind(a, "click", storeClick);
                    hint.push({
                        "text": b.innerHTML,
                        "url": a.href
                    });
                    i++;
                    a = document.getElementById("hint_" + i);
                    b = document.getElementById("hint_text_" + i);
                }
                return hint;
            }
            if (document.getElementById("windowcloseit")) {
                document.getElementById("windowcloseit").onclick = function () {
                    sogouExplorer.extension.sendRequest({
                        cmd: "closeit"
                    });
                }
                var flag = false;
                document.getElementById("bbconfig").onclick = function () {
                    flag = true;
                    sogouExplorer.extension.sendRequest({
                        cmd: "config"
                    });
                    return false;
                }
                document.body.onclick = function () {
                    if (flag) {
                        flag = false;
                    } else {
                        sogouExplorer.extension.sendRequest({
                            cmd: "closeconfig"
                        });
                    }
                };
                document.getElementById("bbhidden").onclick = function(){
                    sogouExplorer.extension.sendRequest({cmd: "hide"});
                    return false;
                }
                var sogoutip = document.getElementById("sogoutip");
                var tip = {};
                tip.word = sogoutip.innerHTML;
                tip.config = sogoutip.title.split(",");
                var hint = storeHint();
                sogouExplorer.extension.sendRequest({
                    cmd: "show",
                    data: {
                        hint: hint,
                        tip: tip
                    }
                });
            } else {
                if (document.getElementById("windowcloseitnow")) {
                    sogouExplorer.extension.sendRequest({
                        cmd: "closeit",
                        data: true
                    });
                }
            }
        }, 1);
    }
})(window.external.sogouExplorer(window, 8));

好像使用了FCKEditor这种编辑器和搜狗浏览器的时候会发生这种事情?这算流氓行为吗?搜狗在统计什么?

PHP中文网
PHP中文网

认证0级讲师

全員に返信(7)
迷茫

流氓行为,这是没有疑问的。对HTTP等协议透明,没有用户明示就不污染传输内容,这是浏览器行为绝对的底线。

浏览器如果连这种事情都做得出,只能说明这三件事,其一或一部分:

  • 浏览器开发者对自己的技术过于缺乏自信
  • 浏览器开发者过于自大,愚弄用户,以为没人比自己聪明
  • 项目内部管理混乱,需求无法准确的传达到应该工作的部门

不过以我的猜测,搜狗浏览器的开发者不会这么笨(尤其是不会笨到把alert这种东西写进在后台静默运行的程序中!),所以还是建议LZ仔细检查原因到底出在哪里。

不过就算如此,我也求求大家:在搜狗大战360这场狗咬狗的战争中,大家两害相权取其轻,至少千万别站在支持360的一边。


非常重要的补充:

Google搜索http://ht.www.sogou.com/websearch/features/yun1.jsp,发现了非常多(10页以上)的结果,并且都是LZ你这段代码。

参考别人的经验,这表明这个污染的网址,很可能就是出现在后端,而不是浏览器捣的鬼。

这样,这个代码的意图、添加者可真的就难以说清了。搜狗干的有可能,别人抹黑搜狗也有可能,真的不可说。还是先排查服务器的安全问题吧。

いいねを押す +0
洪涛

显然是流氓。统计用户页面点击和访问时长等,属于侵犯隐私。

いいねを押す +0
Ty80

没事儿用啥搜狗

いいねを押す +0
巴扎黑

相当于插入了统计代码,统计市场占有率,取得用户页面地址等,算是某种侵犯隐私的行为。

いいねを押す +0
洪涛

那我们经常用的Google统计或者百度友盟之类的是怎么做的呢?我不太了解哎。 埋点就是侵犯隐私了么?

いいねを押す +0
迷茫

没有用过搜狗浏览器,单纯从代码看,感觉像是安装了浏览器插件(默认安装?)导致的。

搜狗浏览器通过用户浏览数据,为输入法、搜索引擎提供新词、排名信息等等,这个是肯定的。但不光是搜狗这么做。

搜狗如果想监控,是否有必要通过给页面注入js这种方式来做,我觉得也不一定。如果在浏览器层实现,就没js什么事了,不抓包谁也发现不了。

いいねを押す +0
Peter_Zhu

首先,这里要明确一下概念,搜狗收集的不是单纯的用户数据,他收集的更多是行业数据,网站是有实际运营主体的,搜狗不经过站长方同意,在浏览器上向站长的网站里嵌入代码手机用户的访问行为,毋庸置疑是侵犯了站长和用户的合法权益的,若因为搜狗此行为导致网站代码冲突影响业务稳定,或者用户的数据属于商业机密,站长可以发起诉讼起诉搜狗的

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート