网站内容劫持 广告(用js屏蔽被http劫持的浮动广告实现方法-小编)

优采云 发布时间: 2021-10-29 13:15

  网站内容劫持 广告(用js屏蔽被http劫持的浮动广告实现方法-小编)

  下面小编就为大家带来一种利用js拦截http劫持浮动广告的实现方法。我觉得还不错,现在分享给大家,给大家参考。跟着小编一起来看看吧。最近发现网站经常在右下角弹出一个浮动广告。一开始以为只是浏览器广告。

  后来,越来越多的同事反映,家里的不同浏览器也会出现广告。然后深入查看,发现网站被劫持了。

  IIS7网站监控可以及时防控网站的风险,快速准确监控网站是否受到各种劫持攻击,网站是否可以正常打开跨国家(查域名是否Wall),精准DNS污染检测,带网站开启速度检测功能,第一时间知道网站是否被黑、被黑、改标题、上链链接。持续改进产品,提供缺陷零数据!

  它可以完成以下功能:

  1、检测网站是否被黑

  2、检测网站是否被劫持

  3、检查域名是否被屏蔽

  4、检测DNS是否被污染

  5、网站 真实全开时间(独家)

  6、拥有独立监控后台,24小时域名定期监控

  官方图片:

  

  

  官方地址:

  然后百度得到了很多信息,比如http劫持、dns劫持、运营商劫持等,确定确实是一招。这是一次黑客攻击,插入了广告代码。他是个不择手段的奸商,无所不能。然而,最重要的解决方案是什么?然后把问题抛给了运维同事。

  最终的结果是没有解决方案。没错,就是这样的作弊。除非使用 https。网上电话、信件和投诉似乎毫无用处。可能是运维太差了。反正结果是没有结果。

  那么,就没有办法了。我们只能通过我们的大前端找到一种方法来阻止它。然后开始了研究劫持代码的旅程,

  最后发现被劫持的广告会定义一个js全局变量_pushshowjs_,里面保存了一些被劫持的广告的信息,然后创建了一个id为_embed_v3_dc的div来放置广告。而且每次都是一样的,不会有什么变化。

  根据劫持广告的投放原理,最终采用js拦截劫持广告的方法。

  具体代码如下:

  ;(函数($,窗口,未定义){

  var needClear=false,

  暂停;

  如果(窗口。_pushshowjs_){

  console.log("adHttp");

  需要清除=真;

  }

  window._pushshowjs_={};

  Object.freeze(window._pushshowjs_);//使对象只读,防止属性被直接修改

  Object.defineProperty(window,'_pushshowjs_', {

  configure: false,//防止属性被重新定义

  writable: false//防止属性被重新赋值

  });

  如果(需要清除){

  超时=设置间隔(函数(){

  if($("#_embed_v3_dc").length>0){

  $("#_embed_v3_dc").remove();

  console.log("http 清除");

  需要清除=假;

  清除间隔(超时);

  }

  },500);

  $(window).load(function(){

  如果(需要清除){

  设置超时(功能(){

  清除间隔(超时);

  console.log("清除");

  },2000);

  }

  });

  }

  }(jQuery,window));

  代码不多,就不详细分析了(如果觉得代码有问题,欢迎指正)。简单的说,就是将劫持广告所必需的全局js变量_pushshowjs_设置为不可修改和只读。如果发现广告,它将被清除。

  贴上代码后,终于对被劫持的广告说了88。

  为什么是傻瓜式?

  因为这只是自欺欺人。事实上,劫持仍然存在,被劫持的js加载顺序可能会发生变化,导致错误。理想的解决方案是依靠运维和运营商解决或使用https。

  每次劫持的广告逻辑应该是一样的,只是广告代码会有所不同。所以我的可能不适用于其他劫持广告。这只是一种思路,没有出路。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线