公司负责维护的一位同事发现的,我们的页面很多地方都被注入了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这种编辑器和搜狗浏览器的时候会发生这种事情?这算流氓行为吗?搜狗在统计什么?
迷茫2017-04-10 12:50:27
流氓行为,这是没有疑问的。对HTTP等协议透明,没有用户明示就不污染传输内容,这是浏览器行为绝对的底线。
浏览器如果连这种事情都做得出,只能说明这三件事,其一或一部分:
不过以我的猜测,搜狗浏览器的开发者不会这么笨(尤其是不会笨到把alert
这种东西写进在后台静默运行的程序中!),所以还是建议LZ仔细检查原因到底出在哪里。
不过就算如此,我也求求大家:在搜狗大战360这场狗咬狗的战争中,大家两害相权取其轻,至少千万别站在支持360的一边。
非常重要的补充:
Google搜索http://ht.www.sogou.com/websearch/features/yun1.jsp
,发现了非常多(10页以上)的结果,并且都是LZ你这段代码。
参考别人的经验,这表明这个污染的网址,很可能就是出现在后端,而不是浏览器捣的鬼。
这样,这个代码的意图、添加者可真的就难以说清了。搜狗干的有可能,别人抹黑搜狗也有可能,真的不可说。还是先排查服务器的安全问题吧。
迷茫2017-04-10 12:50:27
没有用过搜狗浏览器,单纯从代码看,感觉像是安装了浏览器插件(默认安装?)导致的。
搜狗浏览器通过用户浏览数据,为输入法、搜索引擎提供新词、排名信息等等,这个是肯定的。但不光是搜狗这么做。
搜狗如果想监控,是否有必要通过给页面注入js这种方式来做,我觉得也不一定。如果在浏览器层实现,就没js什么事了,不抓包谁也发现不了。
天蓬老师2017-04-10 12:50:27
首先,这里要明确一下概念,搜狗收集的不是单纯的用户数据,他收集的更多是行业数据,网站是有实际运营主体的,搜狗不经过站长方同意,在浏览器上向站长的网站里嵌入代码手机用户的访问行为,毋庸置疑是侵犯了站长和用户的合法权益的,若因为搜狗此行为导致网站代码冲突影响业务稳定,或者用户的数据属于商业机密,站长可以发起诉讼起诉搜狗的