用js屏蔽被http劫持的浮动广告实现方法
发布时间 - 2026-01-11 02:43:14 点击率:次最近发现网站经常在右下角弹出一个浮动广告,开始的时候以为只是浏览器的广告。

后来越来越多同事反映在家里不同浏览器也会出现广告。然后深入检查了下,发现网站竟然被劫持了。
然后百度了一大堆资料,什么http劫持、dns劫持、运营商劫持之类的,确定真的是中招了。看图:
真是偷梁换柱啊,被插入广告代码了。真是无良奸商,什么都做得出。
然并卵,最重要的解决办法是啥?然后把问题扔给了运维的同事。
最终结果是解决不了。没错,就是这么的坑爹。除非采用https。网上那些什么打电话、发信投诉之类的貌似没啥用。可能是运维太烂了。反正结果就是没结果。
然后,没办法啦。只能我们大前端自己想办法屏蔽啦。然后开启了研究劫持代码之旅,
......过程省略了800字寻找过程。
最终发现了,被劫持的广告会定义一个js全局变量_pushshowjs_ ,里面保存了一些劫持广告的相关信息,然后创建一个id为_embed_v3_dc的div放广告。并且每次都是一样的,不会有变化。
根据劫持广告的投放原理,最终使用了js屏蔽被劫持广告的方法。
具体代码如下:
;(function($,window,undefined){
var needClear=false,
timeout;
if(window._pushshowjs_){
console.log("adHttp");
needClear=true;
}
window._pushshowjs_={};
Object.freeze(window._pushshowjs_);//让对象只读, 防止属性被直接修改
Object.defineProperty(window, '_pushshowjs_', {
configurable: false,//防止属性被重新定义
writable: false//防止属性被重新赋值
});
if(needClear){
timeout=setInterval(function(){
if($("#_embed_v3_dc").length>0){
$("#_embed_v3_dc").remove();
console.log("http清除");
needClear=false;
clearInterval(timeout);
}
},500);
$(window).load(function(){
if(needClear){
setTimeout(function(){
clearInterval(timeout);
console.log("清除");
},2000);
}
});
}
}(jQuery,window));
代码不多,就不详细解析了(如果觉得代码有问题,望指正)。简单点说就是把劫持广告必须的全局js变量_pushshowjs_设定为不可被修改,只读。如果发现广告就清除。
放了代码,终于跟被劫持的广告说88了。
为什么说是笨办法?
因为这只是自欺欺人。其实劫持还是存在,并且被劫持了的js的加载顺序有可能会发生变化而导致错误,理想的办法还是要靠运维跟运营商去解决或使用https。
每个劫持的广告逻辑应该都差不多,但广告代码都会不同。所以我这个不一定会适用于其他的劫持广告。这只是一个思路,没办法之中的办法。
有大神有更好的解决办法,望指教。
以上这篇用js屏蔽被http劫持的浮动广告实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
# js屏蔽被http劫持的广告
# JSP使用过滤器防止Xss漏洞
# JS写XSS cookie stealer来窃取密码的步骤详解
# JSP Struts过滤xss攻击的解决办法
# JSP过滤器防止Xss漏洞的实现方法(分享)
# JSP安全开发之XSS漏洞详解
# 防止xss和sql注入:JS特殊字符过滤正则
# 详解前端安全之JavaScript防http劫持与XSS
# 被劫
# 没办法
# 给大家
# 这只
# 解决办法
# 的是
# 是一个
# 也会
# 偷梁换柱
# 就不
# 最重要
# 不多
# 其他的
# 适用于
# 给了
# 之旅
# 希望能
# 大神
# 弹出
# 相关信息
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Linux系统运维自动化项目教程_Ansible批量管理实战
Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)
Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制
nodejs redis 发布订阅机制封装实现方法及实例代码
如何用腾讯建站主机快速创建免费网站?
JS去除重复并统计数量的实现方法
微博html5版本怎么弄发超话_超话进入入口及发帖格式要求【教程】
PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】
再谈Python中的字符串与字符编码(推荐)
Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】
如何撰写建站申请书?关键要点有哪些?
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
如何快速使用云服务器搭建个人网站?
Laravel如何使用Gate和Policy进行授权?(权限控制)
微信小程序 配置文件详细介绍
Windows Hello人脸识别突然无法使用
为什么要用作用域操作符_php中访问类常量与静态属性的优势【解答】
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
UC浏览器如何设置启动页 UC浏览器启动页设置方法
Python制作简易注册登录系统
黑客如何通过漏洞一步步攻陷网站服务器?
如何快速生成高效建站系统源代码?
Laravel如何使用withoutEvents方法临时禁用模型事件
高端建站三要素:定制模板、企业官网与响应式设计优化
如何用wdcp快速搭建高效网站?
如何在IIS管理器中快速创建并配置网站?
Laravel怎么解决跨域问题_Laravel配置CORS跨域访问
如何用免费手机建站系统零基础打造专业网站?
如何在阿里云完成域名注册与建站?
Swift中循环语句中的转移语句 break 和 continue
历史网站制作软件,华为如何找回被删除的网站?
如何在万网ECS上快速搭建专属网站?
如何用美橙互联一键搭建多站合一网站?
Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道
大连网站制作公司哪家好一点,大连买房网站哪个好?
在线教育网站制作平台,山西立德教育官网?
Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程
Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
图册素材网站设计制作软件,图册的导出方式有几种?
ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法
如何在建站宝盒中设置产品搜索功能?
Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】
Laravel路由怎么定义_Laravel核心路由系统完全入门指南
网站制作报价单模板图片,小松挖机官方网站报价?
如何自定义建站之星网站的导航菜单样式?
如何在局域网内绑定自建网站域名?
昵图网官方站入口 昵图网素材图库官网入口
详解Android图表 MPAndroidChart折线图
Linux系统命令中screen命令详解

