监控前端页面是否被劫持

3 篇文章 0 订阅

1 .前端页面 加入

setTimeout(function(){
    $.ajax({
        url:"/logs/ad_log.php",
        type:'post',
        data:{
            'content': $("html").html(),
            'url':window.location.href
        },
        success:function(){

        }
    });
},2000);

2. 后台接收 ad_log.php

header("Content-type:text/html;charset=utf-8");
      set_time_limit(0);
     error_reporting(E_ALL);


		
	$signature = '';
        foreach ( $_POST as $k => $v ) 
        { 
            //$signature.= urlencode($v) . "|" ;
			$signature.= $v. "|" ;
        }
		slog( 'signstr:'.$signature,'rec.html'); 
		
	


	
   function slog($logs,$file)
    {
      $toppath=$file;
      $Ts=fopen($toppath,"a+");
      fputs($Ts,$logs."\r\n");
      fclose($Ts);
    }	

 

3.收集的其他一些 屏蔽运营商广告劫持代码

    function checkDivHijack(e) {
        var dom = e ? e.srcElement : document.documentElement;
        if (!dom.outerHTML) {
            return;     //e不是一个dom,只是插入一段文本
        }

        var imgList = (dom.nodeName.toUpperCase() == 'IMG') ? [dom] : dom.getElementsByTagName('img');
        if (!imgList || imgList.length == 0) {
            return;
        }

        var httpReg = /^http:\/\/(.*\.qq\.com|.*\.gtimg\.cn|.*\.qlogo\.cn|.*\.qpic\.cn)\//;
        var base64Reg = /^data:image/;
        var src;
        var hijack = false;
        for (var i = 0; i < imgList.length; i++) {
            src = imgList[i].src;
            if (!httpReg.test(src) && !base64Reg.test(src)) {
                hijack = true;
                break;
            }
        }
     }
	 
function checkIframeHijack() {
        var flag = 'iframe_hijack_redirected';
        if (getURLParam(flag)) {
            sendHijackReport('jiankang.hijack.iframe_ad', 'iframe hijack: ' + location.href);
        } else {
            if (self != top) {
                var url = location.href;
                var parts = url.split('#');
                if (location.search) {
                    parts[0] += '&' + flag + '=1';
                } else {
                    parts[0] += '?' + flag + '=1';
                }
                try {
                    top.location = parts.join('#');
                } catch (e) {
                }
            }
        }
    }
checkIframeHijack();	
	
function load() 
    { 
        var test=document.getElementsByTagName('html')[0].innerHTML; 
        alert(test); 
    }  
        var del_times = 0, deTimer = null;
        function adGo() {
            var iframe = document.getElementsByTagName('iframe')[0];
            if(iframe){
                console.log(iframe)
                
                //循环 iframe 父类,直到找到body和body的下一级,然后整个嵌入的代码删除。
                var bodyNode = {tagName:''}, iframeParent, targetNode = iframe.parentNode;
                while (bodyNode.tagName != 'BODY'){
                    bodyNode = targetNode;
                    if(bodyNode.tagName != 'BODY'){
                        iframeParent = targetNode;
                        targetNode = targetNode.parentNode;
                    }
                }
                if(iframeParent) //如果iframe有父类
                    bodyNode.removeChild(iframeParent);
                else
                    bodyNode.removeChild(iframe);
            }
            del_times++;
            if (del_times > 10) window.clearInterval(deTimer)
        }
        deTimer = self.setInterval(adGo, 1000);   //把这个1000, 调低一点,比如200

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值