屏蔽UC强制嵌入到网页的垃圾广告方法第二版

先强烈谴责鄙视下UC 这种无耻的、明目张胆的劫持网站流量的强盗行为

之前写过一篇关于 如何屏蔽UC强制嵌入到你网站页面上的垃圾广告 的文章 链接:https://blog.csdn.net/zhouzme/article/details/70932684
但最近发现已经失效了,犯贱的UC 果然没有让人失望,做了许多反屏蔽措施。

先说明下,此文中方法测试于 2018年04月13号 ,不确定此日期后 UC 注入的代码会不会再次变种,可能导致屏蔽失效,可以先尝试使用下,若有变化我会再更新方法

还是以 CSDN 页面截个示例图吧

这里写图片描述
注意底部,这个是正常页面展示情况,底部没有图片的

这里写图片描述

这张是被注入广告后的效果

和以前比起来,现在更是无耻了,以前还会加个 UC 广告的logo现在就一张图,普通人根本搞不懂这是哪儿来的广告了

检测方法和之前一样,通过JS延迟输出页面代码就可以看到UC 劫持注入的广告源码了。

<textarea id="show-uc-ad-code" style="width: 100%;" rows="50"></textarea>
<br><br>
<script>
    setTimeout(function(){
        // alert(document.body.innerHTML);
        document.getElementById('show-uc-ad-code').value = document.body.innerHTML;
    }, 5000);
</script>

这是我本地测试的效果

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

下面这是注入的广告代码

<div id="_idbex8531bn" data-text="f7d5619903cb99b6f8ab2ee34c83049a881b26e832e1703160037053af" style="display: inline; background-color: white;">
    <iframe id="head__idbex8531bn" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="about:blank"></iframe>
    <iframe src="https://utp.ucweb.com/render?cids=9%2C10%2C208&amp;p_u=http%253A%252F%252F192.168.0.2%252Ftest.html&amp;p_t=&amp;limit=1&amp;p_k=&amp;p_r=&amp;uc_param_str=cpfrvelasvprktdnddmiosntbi&amp;utp_ver=5&amp;container=_idbex8531bn&amp;d_s=false&amp;i_a=101%3A0%2C102%3A0%2C103%3A1%2C104%3A0%2C105%3A0%2C106%3A0%2C108%3A0%2C109%3A0%2C110%3A0%2C111%3A0%2C112%3A0%2C107%3A0%2C113%3A0%2C114%3A0%2C115%3A0%2C116%3A0%2C117%3A0%2C118%3A0%2C119%3A0%2C120%3A0%2C121%3A0%2C122%3A0%2C123%3A0%2C124%3A0%2C125%3A0%2C126%3A0%2C127%3A1%2C128%3A0%2C129%3A0%2C130%3A0%2C131%3A0%2C132%3A0%2C133%3A0%2C134%3A0%2C135%3A0%2C136%3A0%2C137%3A1%2C138%3A0" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" width="100%" id="utp__idbex8531bn" style="height: 166px; visibility: visible !important;"></iframe>
</div>

屏蔽UC强制嵌入到网页的垃圾广告方法第二版

现在的代码比以前多了很多,一大堆了,可以看到他的容器id 都进行了随机生成,每次都不一样的,就是为了防止大家通过id来进行拦截

虽然 UC 用上了各种手段防止他注入的广告被我们屏蔽,但他的代码始终还是存在特定的规则的,只是相比以前的方法处理起来麻烦了一点而已。

我们只用 CSS 样式来控制即可

<style type="text/css">
    /* 方法一、确定你的页面上所有正常样式都不是以 下划线 _ 开头的则可以这样处理 */
    div[id^="_"] { display: none !important; }

    /* 方法二、原理同样,稍微安全点的写法,我们隐藏掉他的两个iframe就好,他的 id 容易区分 */
    iframe[id^="head__"] { display: none !important; }
    iframe[id^="utp__"] { display: none !important; }

    /* 方法三、也是用到 CSS 的正则选择器,我们直接屏蔽掉和 UC 相关的所有框架 */
    iframe[src*="ucweb.com"] { display: none !important; }

    /* 以上三种方法任选其一即可,但最终效果还是有些细微不同的,根据你网站的实际效果来选择吧,二三两种方法会有些UC残余垃圾代码会留在页面上,只是不明显,第一种就是容易误杀 */
</style>

屏蔽的原理就是这样了,你也可以 js 来实现更符合你网站需求的方法

这里写图片描述

这样就可以屏蔽掉那一大堆可恶的强制注入广告了。

对于 UC 还有什么好说的呢?为了套流量已经拼得不要脸了,说什么也没用

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 程序猿惹谁了 设计师:白松林 返回首页