js拦截弹窗广告原理及方法
来源:互联网 发布:开宠物用品淘宝店 编辑:程序博客网 时间:2024/06/04 06:59
场景确认:
1.确认服务器和站点程序没有被黑的情况下,网站经常会弹出一些弹窗式的小广告 2.弹窗基本都是页面数据回传到客户端浏览器的过程被电信运营商植入了js外部脚本,该脚本再执行生成iframe广告窗口
大多数情况下运营商HTTP劫持的原理:
在用户的浏览器连上被访问的网站服务器,发送了HTTP请求后,运营商的路由器会首先收到此次HTTP请求,之后运营商路由器的旁路设备标记此TCP连接为HTTP协议,之后可以抢在网站服务器返回数据之前发送HTTP协议的302代码进行下载软件的劫持,浏览器收到302代码后就会跳转到错误的软件下载地址下载软件了,随后网站服务器的真正数据到达后反而会被丢弃。或者,旁路设备在标记此TCP连接为HTTP协议后,直接返回修改后的HTML代码,导致浏览器中被插入了运营商的广告,随后网站服务器的真正数据到达后最终也是被丢弃。
解决办法:
从上述原理中看出,如果需要进行HTTP劫持,首先需要进行标记:如果是HTTP协议,那么进行劫持,否则不进行劫持。那么,是否有一种方法,既可以避免被旁路设备标记为HTTP协议,而目标网站收到的仍旧是原来的HTTP请求,并且不需要任何第三方服务器呢?答案是有的。旁路设备中检测HTTP协议的模块通常比较简单,一般只会检测TCP连接建立后的第一个数据包,如果其是一个完整的HTTP协议才会被标记;如果并非是一个完整的HTTP协议,由于无法得到足够多的劫持信息,所以并不会被标记为HTTP协议(我们伟大的防火墙并非如此,会检查后续数据包,所以这种方法无效)。了解了这种情况后,防止劫持的方法就比较简单了:将HTTP请求分拆到多个数据包内,进而骗过运营商,防止了HTTP劫持。而目标网站的操作系统的TCP/IP协议栈比较完善,收到的仍旧是完整的HTTP请求,所以也不会影响网页浏览。
解决方案一:作为普通用户,一般的建议是打电话给ISP(Internet Service Provider互联网服务提供商)投诉或者投诉工信部,让ISP取消对您的账号的“特殊服务”,非技术手段,不过一般没什么用。附上工信部的投诉网址:http://www.chinatcc.gov.cn:8080/cms/shensu/解决方法一:那么如何将浏览器发出的HTTP请求拆分到多个数据包中呢?我们可以在本地架设一个代理服务器,在代理服务器将浏览器的HTTP请求进行拆包,浏览器设置本地的代理服务器即可。我这里经过测试,默认设置的情况下对三大运营商(电信、联通、移动)的HTTP劫持现象都有很好的抑制作用。 这个软件是个开源软件,代码在: https://github.com/lehui99/ahjs5s 解决方案三:如果是ISP插广告, 全站https就可以一个可行的办法是HTTPS化,HTTPS请求无法简单的伪造。目前由于网络安全的形势不好,很多网站都做了全站HTTPS化。虽然有一些开销,但毕竟是个最有效的办法目前ISP的做法是只劫持JS文件,那么另一个简便的方法就是JS全部放到第三方CDN上,利用第三方存储提供的HTTPS服务,把网页上的JS地址换成HTTPS的,ISP就无法伪造了如果是浏览器开发商,估计无解
阅读全文
0 0
- js拦截弹窗广告原理及方法
- 电脑如何拦截弹窗广告
- AdBlock广告拦截插件的实现原理
- AdBlock广告拦截插件的实现原理
- 秋式广告杀手:广告拦截原理与杀手组织
- JS拦截方法
- Android工程师怒斥360拦截弹窗广告
- JS木马的原理及防范方法
- 360浏览器的js兼容与360拦截浮动广告
- iphone js 弹窗广告接口
- HTML网页漂浮广告原理js实现
- js弹出广告窗
- 拦截广告,避免隐私泄露的几种方法
- webview拦截垃圾电信运营商的广告方法
- js这样弹窗不会被拦截
- js中数组的sort()方法及原理
- Spring AOP原理及拦截器
- struts2 拦截器原理及部分源码
- Trafodion日期运算(一)
- 埃里克·施密特
- 基于递归策略的排序算法
- 配置log4j遇到的问题
- shell 获取单个文件大小
- js拦截弹窗广告原理及方法
- TIM1自动启动、重复计数问题详解
- 移植LED和按键驱动
- 升级更新Android stdio的exploded-aar不见了的问题
- opencv学习系列:实例练习,含多个工程实例
- tensorflow API学习——tf.strided_slice
- keys通用操作
- svn
- java 操作array、list 。subList 的使用