如何屏蔽UC强制嵌入到你网站页面上的垃圾广告

Posted 神神的蜗牛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何屏蔽UC强制嵌入到你网站页面上的垃圾广告相关的知识,希望对你有一定的参考价值。

下面方法已经失效,可参考最新方法: 屏蔽UC强制嵌入到网页的垃圾广告方法第二版

链接:https://blog.csdn.net/zhouzme/article/details/79927539


不知道大家在手机上用UC浏览器的时候, 有没有注意到网页底部有时候会随机出现一大块广告

如下图:
为了避免广告嫌疑, 我这里主要用 CSDN 的官网举例(其实已经处处可见了, 大部分网站页面都被注入过广告)

这里写图片描述

这里写图片描述

这里写图片描述

swoole

这里插了一个 Swoole 的官网, 也被注入了

这里写图片描述

这里写图片描述

大家可能会觉得广告太常见了, 没什么好说的了, 不过这个广告却很特殊的.

因为绝大部分人不注意看, 都会以为这是 CSDN 投放的广告, 可能一些同学就会开骂了, 不过现实是你误会了, 这不是 CSDN 投放的广告, 而是犯贱的 UC 强制注入到 CSDN 网页中的广告代码哦, 不只是 CSDN , 其他很多网站内容都被 UC 浏览器劫持了!

这种情况应该有持续至少一两个月了吧, 以前我就看到过到, 不过没怎么在意, 后来因为我自己网站上的一个用户来问我怎么现在开始投放广告了? 因为我的网站做了好几年, 从来都没有投放过任何广告, 了解后发现其实是 UC 开始犯贱, 居然强制注入自己的广告代码到我的网站页面的代码中.

这个到处屏蔽站长广告的 UC, 居然强制给所有站长嵌入自家的广告给自己赚钱, 这种龌蹉的行为实在是恶心到我了, 所以不得不写这篇文章.

如果 UC 的广告是浏览器上悬浮或弹出来的, 那都还可以接受, 毕竟是他 UC 自己的APP终端, 我们没法管.

但现在的性质是完全不一样了, 他居然劫持站长网页, 注入代码到页面内容中, 没有经过站长的允许, 也没有任何明显的页面提示表名是 UC 自己投放的广告, 这就让很多不明原因的用户认为是站长为了赚钱投放的广告了, 这相比入室抢劫有什么区别?

嵌入广告都还是小事, 今天它可以嵌入广告, 明天就可能在你的页面中嵌入各种脚本, 甚至可以投放个假的网站动态, 弄个假新闻, 随意篡改你的网页信息也可能的, 其他的大家就自由发挥想想吧, 毕竟他可能已经没有底线了, 这种没有道德底线的公司还有什么做不出来的.

UC 给所有站长强制注入广告代码的时候, 我特意看了看 UC 头条中的那些新闻页面, 居然没有看到广告……

他给我们强制投放广告, 却自己的产品不投放, 这, 我也是无言了…


下面看看犯贱的 UC 究竟是怎么注入的, 注入的什么代码

由于只能在手机上看, 比较麻烦, 我在本地测试的, 大家也可以直接写到一个 html 文件中用 UC 浏览器来访问下就知道了


为了再次验证, 我做了测试, 随机另存了一篇 CSDN 上面的文章详情页面的HTML, 然后加入下面的js代码查看源码, 在 UC 浏览器中打开后即可看到被注入的广告

注意: 这个广告是随机出现的, 所以需要多刷新几次.

测试截图, 夸张的是, UC 劫持和 另一个劫持的广告都一起出现了的… 无语

这里写图片描述

这里写图片描述


<script>
setTimeout(function(){
    alert(document.body.innerHTML);
}, 5000);
</script>

注意: 需要加个延迟才行哦, 因为他是正常代码加载完后才注入的.

这里写图片描述

如上图, 就是一个 iframe 直接写入了当前网页的代码中, 经过我的测试, 这段代码应该是每次都写入的, 只是随机显示内容, 大家可以试试

看到了UC 注入的代码, 我们下面就可以想办法来拦截屏蔽UC强制注入的广告了

最简单的是用 css 了, 直接隐藏掉吧

<style type="text/css">
    #uc_recommend_ad { display: none !important; }
</style>

或者给他的广告加个边框可以明显的看出注入效果来

<style type="text/css">
    #uc_recommend_ad { border: solid 5px #F00; }
</style>

使用 js 去掉该容器

setTimeout(function () {
    //alert(document.body.innerHTML);
    var ucad = document.getElementById('uc_recommend_ad');
    if (ucad) {
        ucad.parentNode.removeChild(ucad);
        alert('删除成功');
    }
}, 2000);

这样页面终于干净啦~~

不过上面的办法现在虽然可以用的, 但如此犯贱的 UC , 不知道以后会不会修改 id 甚至去掉各种标识, 那样你想要去掉就比较艰难了, 只能使用 js 来筛选了.

面对这种无耻的强盗恶霸行为, 我们还能有什么办法呢? 毕竟这种事情太多了, 顺便说下另一个类似性质的事情

其实很常见, 但还是用 CSDN 举例吧!

这里写图片描述

这个广告应该是CSDN移动流量被劫持后投放的, 很长一段时间至少半年了看到N次, 很多网站页面都被随机弹出过, 但仍然逍遥法外

对于这种情况, HTTPS 应该有些用处, 不过对于 UC 而言, 毫无用处.
我们的网页HTML代码对与浏览器是完全不设防的, 他们想怎么改就怎么改, 如果他们没有底线

己所不欲, 勿施于人, 我想 UC 也不希望他的官网下面, 被别人放个卖 XX 的广告吧!

以上是关于如何屏蔽UC强制嵌入到你网站页面上的垃圾广告的主要内容,如果未能解决你的问题,请参考以下文章

美国成人网站使用WebSocket绕过广告屏蔽插件

教你怎么屏蔽宽带商的流氓广告

iframe框架嵌入一个网页,在微信里面打开不显示内容,一片空白,在其他浏览器都正常,紧急求助,在线等!

如何让访问网站时页面自动刷新两次?

如何只屏蔽headerView上的长按事件

如何在应用之星平台嵌入KeyMob聚合广告?